Add 'namespaced' property to support flat vs deep directory structure
Defaults to 'no' to use the preferred flat directory structure.
diff --git a/README.md b/README.md
index c763a38..010a070 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,18 @@
<dd>
the package namespace, for example "com.example"
</dd>
+ <dt>namespaced</dt>
+ <dd>
+ if 'no', uses a flattened directory structure with no package
+ directories and mixed source and resource files in src/ and test/
+ directories (default)
+ </dd>
+ <dd>
+ if 'yes', uses a deep directory structure with package directories and
+ separate directories for source and resource files. This should
+ only be used when namespacing is required to avoid file name
+ ambiguities.
+ </dd>
<dt>daffodil_version</dt>
<dd>
the version of Apache Daffodil to add as a dependency, defaults to the
diff --git a/src/main/g8/src/main/resources/$package$/$name__camel$/xsd/$name__camel$.dfdl.xsd "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/$if\050namespaced.truthy\051$main$else$src$endif$/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/$if\050namespaced.truthy\051$xsd$else$.$endif$/$name__camel$.dfdl.xsd"
similarity index 100%
rename from src/main/g8/src/main/resources/$package$/$name__camel$/xsd/$name__camel$.dfdl.xsd
rename to "src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/$if\050namespaced.truthy\051$main$else$src$endif$/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/$if\050namespaced.truthy\051$xsd$else$.$endif$/$name__camel$.dfdl.xsd"
diff --git a/src/main/g8/src/test/resources/$package$/$name__camel$/Test$name__Camel$.tdml "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.tdml"
similarity index 73%
rename from src/main/g8/src/test/resources/$package$/$name__camel$/Test$name__Camel$.tdml
rename to "src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.tdml"
index 3654cd3..d897b72 100644
--- a/src/main/g8/src/test/resources/$package$/$name__camel$/Test$name__Camel$.tdml
+++ "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.tdml"
@@ -26,12 +26,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
defaultRoundTrip="onePass">
- <tdml:parserTestCase name="test_$name;format="camel"$_01" root="$name;format="Camel"$" model="$package;format="packaged"$/$name;format="camel"$/xsd/$name;format="camel"$.dfdl.xsd">
+ <tdml:parserTestCase name="test_$name;format="camel"$_01" root="$name;format="Camel"$" model="$if(namespaced.truthy)$$package;format="packaged"$/$name;format="camel"$/xsd/$endif$$name;format="camel"$.dfdl.xsd">
<tdml:document>
- <tdml:documentPart type="file">$package;format="packaged"$/$name;format="camel"$/data/test_01.$name;format="camel"$</tdml:documentPart>
+ <tdml:documentPart type="file">$if(namespaced.truthy)$$package;format="packaged"$/$name;format="camel"$/$endif$data/test_01.$name;format="camel"$</tdml:documentPart>
</tdml:document>
<tdml:infoset>
- <tdml:dfdlInfoset type="file">$package;format="packaged"$/$name;format="camel"$/infosets/test_01.$name;format="camel"$.xml</tdml:dfdlInfoset>
+ <tdml:dfdlInfoset type="file">$if(namespaced.truthy)$$package;format="packaged"$/$name;format="camel"$/$endif$infosets/test_01.$name;format="camel"$.xml</tdml:dfdlInfoset>
</tdml:infoset>
</tdml:parserTestCase>
diff --git a/src/main/g8/src/test/resources/$package$/$name__camel$/data/test_01.$name__camel$ "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/data/test_01.$name__camel$"
similarity index 100%
rename from src/main/g8/src/test/resources/$package$/$name__camel$/data/test_01.$name__camel$
rename to "src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/data/test_01.$name__camel$"
diff --git a/src/main/g8/src/test/resources/$package$/$name__camel$/infosets/test_01.$name__camel$.xml "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/infosets/test_01.$name__camel$.xml"
similarity index 100%
rename from src/main/g8/src/test/resources/$package$/$name__camel$/infosets/test_01.$name__camel$.xml
rename to "src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$resources$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/infosets/test_01.$name__camel$.xml"
diff --git a/src/main/g8/src/test/scala/$package$/$name__camel$/Test$name__Camel$.scala "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$scala$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.scala"
similarity index 88%
rename from src/main/g8/src/test/scala/$package$/$name__camel$/Test$name__Camel$.scala
rename to "src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$scala$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.scala"
index d14d617..83135ce 100644
--- a/src/main/g8/src/test/scala/$package$/$name__camel$/Test$name__Camel$.scala
+++ "b/src/main/g8/$if\050namespaced.truthy\051$src$else$.$endif$/test/$if\050namespaced.truthy\051$scala$else$.$endif$/$if\050namespaced.truthy\051$$package$$else$.$endif$/$if\050namespaced.truthy\051$$name__camel$$else$.$endif$/Test$name__Camel$.scala"
@@ -22,7 +22,7 @@
import org.apache.daffodil.tdml.Runner
object Test$name;format="Camel"$ {
- lazy val runner = Runner("/$package;format="packaged"$/$name;format="camel"$/", "Test$name;format="Camel"$.tdml")
+ lazy val runner = Runner("/$if(namespaced.truthy)$$package;format="packaged"$/$name;format="camel"$/$endif$", "Test$name;format="Camel"$.tdml")
@AfterClass def shutDown {
runner.reset
diff --git a/src/main/g8/.gitattributes b/src/main/g8/.gitattributes
index b2b04d0..0120b8e 100644
--- a/src/main/g8/.gitattributes
+++ b/src/main/g8/.gitattributes
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
$endif$
-src/test/resources/**/data/** text=false
+$if(namespaced.truthy)$src/test/resources/**/$else$test/$endif$data/** text=false
diff --git a/src/main/g8/build.sbt b/src/main/g8/build.sbt
index e71786a..b6f4c78 100644
--- a/src/main/g8/build.sbt
+++ b/src/main/g8/build.sbt
@@ -31,3 +31,17 @@
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v")
crossPaths := false
+
+$if(!namespaced.truthy)$
+// Use flat folder structure. This means *.java and *.scala files are in the
+// same directory as resources files, and source/resource files are only
+// differentiated by their file extension.
+Compile / unmanagedSourceDirectories := Seq(baseDirectory.value / "src")
+Compile / unmanagedResourceDirectories := Seq(baseDirectory.value / "src")
+Compile / unmanagedSources / includeFilter := "*.java" | "*.scala"
+Compile / unmanagedResources / excludeFilter := "*.java" | "*.scala"
+Test / unmanagedSourceDirectories := Seq(baseDirectory.value / "test")
+Test / unmanagedResourceDirectories := Seq(baseDirectory.value / "test")
+Test / unmanagedSources / includeFilter := "*.java" | "*.scala"
+Test / unmanagedResources / excludeFilter := "*.java" | "*.scala"
+$endif$
diff --git a/src/main/g8/default.properties b/src/main/g8/default.properties
index 2f03142..bdf02f4 100644
--- a/src/main/g8/default.properties
+++ b/src/main/g8/default.properties
@@ -15,4 +15,5 @@
name=format
package=com.example
+namespaced=no
daffodil_version=maven(org.apache.daffodil, daffodil-tdml-processor_2.12)