stevedlawrence closed pull request #14: Update sbt to 1.x, simplifing build 
config and replacing deprecated s?
URL: https://github.com/apache/incubator-daffodil/pull/14
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/.travis.yml b/.travis.yml
index f7634a771..e840a7126 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,8 +30,9 @@ script:
     compile
     test:compile
     debug:compile
+    daffodil-cli/compile
     test
-    cli:test
+    daffodil-cli/test
     daffodil-cli/universal:packageBin
     daffodil-cli/universal:packageZipTarball
     daffodil-cli/rpm:packageBin
diff --git a/README.md b/README.md
index ef38b6009..2f4b7c2ae 100644
--- a/README.md
+++ b/README.md
@@ -25,13 +25,13 @@ To run all Daffodil tests:
 # run all unit tests
 $ sbt test 
 # run all command line tests
-$ sbt cli
+$ sbt daffodil-cli/test
 ```
 
 To build the Daffodil command line interface:
 
 ```bash 
-$ sbt stage
+$ sbt daffodil-cli/stage
 ```
 
 The above will create Linux and Windows shell scripts in 
`daffodil-cli/target/universal/stage/bin/`. See the [Command Line 
Interface](https://cwiki.apache.org/confluence/display/DAFFODIL/Command+Line+Interface)
 documentation for details on its usage.
diff --git a/build.sbt b/build.sbt
index 06b3ebebd..5e7aff1e9 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,77 +1,193 @@
-
-
-name := "daffodil"
-
-organization in ThisBuild := "edu.illinois.ncsa"
-
-version in ThisBuild := "2.1.0-SNAPSHOT"
-
-scalaVersion in ThisBuild := "2.11.8"
-
-// incOptions := incOptions.value.withNameHashing(true) // 2.11 experimental 
incremental compilation improvements (perhaps not working right?)
-
-scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation", 
"-Yinline-warnings", "-Xxml:-coalescing", "-language:experimental.macros", 
"-Ybackend:GenBCode", "-Yopt-warnings", 
- "-Ywarn-inaccessible", "-Ywarn-unused-import", "-Ywarn-unused", 
"-Ywarn-infer-any", "-Ywarn-nullary-override", "-Ydead-code", 
"-Yopt:inline-global", "-Yinline" , "-Xfatal-warnings")
-
-// parallelExecution in ThisBuild := false
-
-// concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)
-
-logBuffered in ThisBuild := true
-
-testOptions in ThisBuild += Tests.Argument(TestFrameworks.JUnit, "-v")
-
-transitiveClassifiers := Seq("sources", "javadoc")
-
-libraryDependencies in ThisBuild := Seq(
-  "org.scala-lang.modules" %% "scala-xml" % "1.0.6",
-  "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4",
-  "junit" % "junit" % "4.11" % "test",
-  "com.novocode" % "junit-interface" % "0.11" % "test",
-  "net.sf.expectit" % "expectit-core" % "0.8.1" % "test",
-  "org.jdom" % "jdom2" % "2.0.6",
-  "com.ibm.icu" % "icu4j" % "51.1", // new versions avail. 58.1 requires code 
changes
-  "xerces" % "xercesImpl" % "2.10.0",
-  "com.fasterxml.woodstox" % "woodstox-core" % "5.0.3",
-  "com.fasterxml.jackson.core" % "jackson-core" % "2.8.8",
-  "xml-resolver" % "xml-resolver" % "1.2",
-  "jline" % "jline" % "2.12.1", // newer versions avail. 3.0.0-M1 requires 
code changes
-  "org.fusesource.jansi" % "jansi" % "1.14",
-  "org.rogach" %% "scallop" % "0.9.5", // new version avail. 2.0.5 requires 
code changes
-  "commons-io" % "commons-io" % "2.5",
-  "org.scalacheck" %% "scalacheck" % "1.13.4" % "test"
+lazy val genManaged = taskKey[Unit]("Generate managed sources and resources")
+lazy val genProps = taskKey[Seq[File]]("Generate properties scala source")
+lazy val genSchemas = taskKey[Seq[File]]("Generated DFDL schemas")
+
+lazy val TestDebug = config("debug") extend(Test)
+
+
+lazy val daffodil         = Project("daffodil", file(".")).configs(TestDebug)
+                              .aggregate(macroLib, propgen, lib, io, runtime1, 
runtime1Unparser, core, japi, sapi, tdml, test, testIBM1, tutorials, 
testStdLayout)
+                              .settings(commonSettings, nopublish)
+
+lazy val macroLib         = Project("daffodil-macro-lib", 
file("daffodil-macro-lib")).configs(TestDebug)
+                              .settings(commonSettings, nopublish)
+                              .settings(libraryDependencies += 
"org.scala-lang" % "scala-reflect" % scalaVersion.value)
+
+lazy val propgen          = Project("daffodil-propgen", 
file("daffodil-propgen")).configs(TestDebug)
+                              .settings(commonSettings, nopublish)
+
+lazy val lib              = Project("daffodil-lib", 
file("daffodil-lib")).configs(TestDebug)
+                              .dependsOn(macroLib % "compile-internal, 
test-internal")
+                              .settings(commonSettings, libManagedSettings, 
usesMacros)
+
+lazy val io               = Project("daffodil-io", 
file("daffodil-io")).configs(TestDebug)
+                              .dependsOn(lib, macroLib % "compile-internal, 
test-internal")
+                              .settings(commonSettings, usesMacros)
+
+lazy val runtime1         = Project("daffodil-runtime1", 
file("daffodil-runtime1")).configs(TestDebug)
+                              .dependsOn(io, lib % "test->test")
+                              .settings(commonSettings)
+
+lazy val runtime1Unparser = Project("daffodil-runtime1-unparser", 
file("daffodil-runtime1-unparser")).configs(TestDebug)
+                              .dependsOn(runtime1, lib % "test->test", 
runtime1 % "test->test")
+                              .settings(commonSettings)
+
+lazy val core             = Project("daffodil-core", 
file("daffodil-core")).configs(TestDebug)
+                              .dependsOn(runtime1Unparser, lib % "test->test", 
runtime1 % "test->test")
+                              .settings(commonSettings)
+
+lazy val japi             = Project("daffodil-japi", 
file("daffodil-japi")).configs(TestDebug)
+                              .dependsOn(core)
+                              .settings(commonSettings)
+
+lazy val sapi             = Project("daffodil-sapi", 
file("daffodil-sapi")).configs(TestDebug)
+                              .dependsOn(core)
+                              .settings(commonSettings)
+
+lazy val tdml             = Project("daffodil-tdml", 
file("daffodil-tdml")).configs(TestDebug)
+                              .dependsOn(core, core % "test->test")
+                              .settings(commonSettings)
+
+lazy val cli              = Project("daffodil-cli", 
file("daffodil-cli")).configs(TestDebug)
+                              .dependsOn(tdml, sapi, japi) // causes sapi/japi 
to be pulled in to the helper zip/tar
+                              .settings(commonSettings, nopublish)
+                              .settings(libraryDependencies ++= 
Dependencies.cli) 
+
+lazy val test             = Project("daffodil-test", 
file("daffodil-test")).configs(TestDebug)
+                              .dependsOn(tdml, core % "test->test")
+                              .settings(commonSettings, nopublish)
+
+lazy val testIBM1         = Project("daffodil-test-ibm1", 
file("daffodil-test-ibm1")).configs(TestDebug)
+                              .dependsOn(tdml)
+                              .settings(commonSettings, nopublish)
+
+lazy val tutorials        = Project("daffodil-tutorials", 
file("tutorials")).configs(TestDebug)
+                              .dependsOn(tdml)
+                              .settings(commonSettings, nopublish)
+
+lazy val testStdLayout    = Project("daffodil-test-stdLayout", 
file("test-stdLayout")).configs(TestDebug)
+                              .dependsOn(tdml, core % "test->test")
+                              .settings(commonSettings, nopublish)
+
+
+
+lazy val commonSettings = Seq(
+  organization := "edu.illinois.ncsa",
+  version := "2.1.0-SNAPSHOT",
+  scalaVersion := "2.11.8",
+  scalacOptions ++= Seq(
+    "-deprecation",
+    "-language:experimental.macros",
+    "-unchecked",
+    "-Xfatal-warnings",
+    "-Xxml:-coalescing",
+    "-Ybackend:GenBCode",
+    "-Ydead-code",
+    "-Yinline" ,
+    "-Yinline-warnings",
+    "-Yopt:inline-global",
+    "-Yopt-warnings",
+    "-Ywarn-inaccessible",
+    "-Ywarn-infer-any",
+    "-Ywarn-nullary-override",
+    "-Ywarn-unused",
+    "-Ywarn-unused-import"
+  ),
+  logBuffered := true,
+  transitiveClassifiers := Seq("sources", "javadoc"),
+  retrieveManaged := true,
+  exportJars := true,
+  exportJars in Test := false,
+  publishMavenStyle := true,
+  publishArtifact in Test := false,
+  pomIncludeRepository in ThisBuild := { _ => false },
+  scmInfo := Some(
+    ScmInfo(
+      browseUrl = 
url("https://git-wip-us.apache.org/repos/asf?p=incubator-daffodil.git";),
+      connection = "scm:git:git://git.apache.org/incubator-daffodil.git"
+    )
+  ),
+  licenses := Seq("University of Illinois/NCSA Open Source License" -> 
url("http://opensource.org/licenses/UoI-NCSA.php";)),
+  homepage := Some(url("https://daffodil.apache.org";)),
+  initialize := {
+    val _ = initialize.value
+    if (sys.props("java.specification.version") != "1.8") {
+      sys.error("Java 8 is required for this project.")
+    }
+  },
+  unmanagedBase := baseDirectory.value / "lib" / "jars",
+  sourceManaged := baseDirectory.value / "src_managed",
+  resourceManaged := baseDirectory.value / "resource_managed",
+  libraryDependencies ++= Dependencies.common,
+) ++ debugTestSettings
+
+lazy val debugTestSettings = inConfig(TestDebug)(Defaults.testSettings ++ Seq(
+  sourceDirectory := baseDirectory.value / "src" / "test",
+  scalaSource := sourceDirectory.value / "scala-debug",
+  exportJars := false,
+))
+
+lazy val nopublish = Seq(
+  publish := {},
+  publishLocal := {},
+  packagedArtifacts := Map.empty,
+  publishArtifact := false,
 )
 
-initialize := {
-  val _ = initialize.value
-  if (sys.props("java.specification.version") != "1.8") {
-    sys.error("Java 8 is required for this project.")
-  }
-}
-
-retrieveManaged := true
-
-exportJars in ThisBuild := true
-
-exportJars in Test in ThisBuild := false
-
-
-
-
-
-publishMavenStyle in ThisBuild := true
-
-publishArtifact in Test := false
-
-pomIncludeRepository in ThisBuild := { _ => false }
-
-scmInfo := Some(
-  ScmInfo(
-    browseUrl = 
url("https://git-wip-us.apache.org/repos/asf?p=incubator-daffodil.git";),
-    connection = "scm:git:git://git.apache.org/incubator-daffodil.git"
-  )
+lazy val usesMacros = Seq(
+  mappings in (Compile, packageBin) ++= mappings.in(macroLib, Compile, 
packageBin).value,
+  mappings in (Compile, packageSrc) ++= mappings.in(macroLib, Compile, 
packageSrc).value
 )
 
-licenses in ThisBuild := Seq("University of Illinois/NCSA Open Source License" 
-> url("http://opensource.org/licenses/UoI-NCSA.php";))
-
-homepage in ThisBuild := Some(url("https://daffodil.apache.org";))
+lazy val libManagedSettings = Seq(
+  genManaged := {
+    (genProps in Compile).value
+    (genSchemas in Compile).value
+  },
+  genProps in Compile := {
+    val cp = (dependencyClasspath in Runtime in propgen).value
+    val inSrc = (sources in Compile in propgen).value
+    val inRSrc = (resources in Compile in propgen).value
+    val stream = (streams in propgen).value
+    val outdir = (sourceManaged in Compile).value
+    val filesToWatch = (inSrc ++ inRSrc).toSet
+    val cachedFun = FileFunction.cached(stream.cacheDirectory / "propgen") { 
(in: Set[File]) =>
+      val mainClass = "edu.illinois.ncsa.daffodil.propGen.PropertyGenerator"
+      val out = new java.io.ByteArrayOutputStream()
+      val forkOpts = ForkOptions()
+                       .withOutputStrategy(Some(CustomOutput(out)))
+                       .withBootJars(cp.files.toVector)
+      val ret = new Fork("java", Some(mainClass)).fork(forkOpts, 
Seq(outdir.toString)).exitValue()
+      if (ret != 0) {
+        sys.error("Failed to generate code")
+      }
+      val bis = new java.io.ByteArrayInputStream(out.toByteArray)
+      val isr = new java.io.InputStreamReader(bis)
+      val br = new java.io.BufferedReader(isr)
+      val iterator = Iterator.continually(br.readLine()).takeWhile(_ != null)
+      val files = iterator.map { f =>
+        stream.log.info("Generated %s".format(f))
+        new File(f)
+      }.toSet
+      files
+    }
+    cachedFun(filesToWatch).toSeq
+  },
+  genSchemas in Compile := {
+    val inRSrc = (resources in Compile in propgen).value
+    val stream = (streams in propgen).value
+    val outdir = (resourceManaged in Compile).value
+    val filesToWatch = inRSrc.filter{_.isFile}.toSet
+    val cachedFun = FileFunction.cached(stream.cacheDirectory / "schemasgen") 
{ (schemas: Set[File]) =>
+      schemas.map { schema =>
+        val out = outdir / "edu" / "illinois" / "ncsa" / "daffodil" / "xsd" / 
schema.getName
+        IO.copyFile(schema, out)
+        stream.log.info("Generated %s".format(out))
+        out
+      }
+    }
+    cachedFun(filesToWatch).toSeq
+  },
+  sourceGenerators in Compile += (genProps in Compile).taskValue,
+  resourceGenerators in Compile += (genSchemas in Compile).taskValue
+)
diff --git a/daffodil-cli/build.sbt b/daffodil-cli/build.sbt
new file mode 100644
index 000000000..70d959c01
--- /dev/null
+++ b/daffodil-cli/build.sbt
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import com.typesafe.sbt.SbtLicenseReport.autoImportImpl._
+import com.typesafe.sbt.license.LicenseCategory
+import com.typesafe.sbt.license.LicenseInfo
+import com.typesafe.sbt.license.DepModuleInfo
+import com.typesafe.sbt.license.DepLicense
+import com.typesafe.sbt.license.DepModuleInfo
+import com.typesafe.sbt.license.Html
+
+enablePlugins(JavaAppPackaging)
+enablePlugins(RpmPlugin)
+
+// need 'sbt stage' to build the CLI for cli tests
+(test in Test) := (test in Test).dependsOn(stage in Compile).value
+(testOnly in Test) := (testOnly in Test).dependsOn(stage in Compile).evaluated
+(testQuick in Test) := (testQuick in Test).dependsOn(stage in 
Compile).evaluated
+
+licenseReportTitle := "Daffodil_Licenses"  // has an underscore since this is 
used to create the output file
+
+licenseConfigurations := Set("compile")
+
+licenseSelection := Seq(LicenseCategory("NCSA"), LicenseCategory("ICU")) ++ 
LicenseCategory.all
+
+licenseOverrides := {
+  case DepModuleInfo("commons-io", "commons-io", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
+  case DepModuleInfo("xml-resolver", "xml-resolver", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
+  case DepModuleInfo("org.fusesource.jansi", "jansi", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
+  case DepModuleInfo("com.fasterxml.jackson.core", "jackson-core" , _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
+  case DepModuleInfo("com.ibm.icu", "icu4j" , "51.1") => 
LicenseInfo(LicenseCategory("ICU"), "ICU License", 
"https://ssl.icu-project.org/repos/icu/tags/release-51-2/icu4j/main/shared/licenses/license.html";)
+}
+
+licenseFilter := {
+  case LicenseCategory("NCSA", _) => false
+  case _ => true
+}
+
+licenseReportMakeHeader := {
+  case Html => Html.header1(licenseReportTitle.value.replace("_", " ")) + 
"<p>Daffodil is licensed under the <a 
href='http://opensource.org/licenses/NCSA'>University of Illinois/NCSA Open 
Source License</a>.</p><p>Below are the libraries that Daffodil depends on and 
their licenses.<br></p>"
+  case l => l.header1(licenseReportTitle.value.replace("_", " "))
+}
+
+updateLicenses := {
+  val report = updateLicenses.value
+  val unmanaged_licenses = Seq(
+    DepLicense(DepModuleInfo("passera", "passera", "0.1"), 
LicenseInfo(LicenseCategory.BSD, "BSD", 
"https://github.com/nystrom/scala-unsigned/blob/master/BSD-LICENSE.txt";), 
Set("runtime"))
+  )
+  report.copy(licenses = report.licenses ++ unmanaged_licenses)
+}
+
+executableScriptName := "daffodil"
+
+packageName in Universal := "daffodil-" + version.value + "-bin" //tarball name
+
+packageName in Linux := executableScriptName.value
+
+packageName in Rpm := executableScriptName.value
+
+mappings in Universal ++= Seq(
+  dumpLicenseReport.value / (licenseReportTitle.value + ".html") -> 
"LICENSES.html",
+  baseDirectory.value / ".." / "DISCLAIMER" -> "DISCLAIMER",
+  baseDirectory.value / "README.md" -> "README.md",
+)
+
+rpmVendor := "Apache Daffodil"
+
+maintainer in Rpm := "Apache Daffodil <[email protected]>"
+
+packageArchitecture in Rpm := "noarch"
+
+packageSummary in Rpm := "Open source implementation of the Data Format 
Description Language (DFDL)"
+
+packageDescription in Rpm := """
+Apache Daffodil (incubating) is the open source implementation of the Data
+Format Description Language (DFDL), a specification created by the Open Grid
+Forum. DFDL is capable of describing many data formats, including textual and
+binary, commercial record-oriented, scientific and numeric, modern and legacy,
+and many industry standards. It leverages XML technology and concepts, using a
+subset of W3C XML schema type system and annotations to describe such data.
+Daffodil uses this description to parse data into an XML infoset for ingestion
+and validation.
+""".trim
+
+version in Rpm := {
+  val parts = version.value.split("-", 2)
+  parts(0) + ".incubating" // removes snapshot/beta/rc/etc, that should only 
be in the rpmRelease
+}
+
+rpmRelease := {
+  val parts = version.value.split("-", 2) // parts(0) is the version, parse(1) 
is snapshot/beta/rc/etc if it exists
+  if (parts.length > 1) "0." + parts(1).toLowerCase else "1"
+}
+
+rpmLicense := Some(licenses.value.map { case (n: String, _) => n }.mkString(" 
and "))
+
+rpmPrefix := Some(defaultLinuxInstallLocation.value)
diff --git a/daffodil-cli/src/test/scala-new/.keep 
b/daffodil-cli/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/daffodil-cli/src/test/scala/.keep 
b/daffodil-cli/src/test/scala/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/daffodil-core/src/test/scala-new/.keep 
b/daffodil-core/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/.keep 
b/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/api/TestAPI.scala 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/api/TestAPI.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/api/TestAPI.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/api/TestAPI.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/api/TestDsomCompiler3.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/api/TestDsomCompiler3.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/api/TestDsomCompiler3.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/api/TestDsomCompiler3.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionEvaluation.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionEvaluation.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionEvaluation.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionEvaluation.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionTree.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionTree.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionTree.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDFDLExpressionTree.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDPath.scala
 b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDPath.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dpath/TestDPath.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dpath/TestDPath.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestBinaryInput_01.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestBinaryInput_01.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestBinaryInput_01.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestBinaryInput_01.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestExternalVariablesNew.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestExternalVariablesNew.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestExternalVariablesNew.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestExternalVariablesNew.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestIsScannable.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestIsScannable.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestIsScannable.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestIsScannable.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestMiddleEndAttributes3.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestMiddleEndAttributes3.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestMiddleEndAttributes3.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestMiddleEndAttributes3.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestSimpleTypeUnions.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestSimpleTypeUnions.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TestSimpleTypeUnions.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TestSimpleTypeUnions.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TextCompileExpressionExecution.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TextCompileExpressionExecution.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/dsom/TextCompileExpressionExecution.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/dsom/TextCompileExpressionExecution.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesLoaderNew.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesLoaderNew.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesLoaderNew.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesLoaderNew.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesNew.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesNew.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesNew.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/externalvars/TestExternalVariablesNew.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/general/TestDFDLReaders.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/general/TestDFDLReaders.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/general/TestDFDLReaders.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/general/TestDFDLReaders.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/general/TestPrimitives2.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/general/TestPrimitives2.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/general/TestPrimitives2.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/general/TestPrimitives2.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/infoset/TestInfoset.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/infoset/TestInfoset.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/infoset/TestInfoset.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/infoset/TestInfoset.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/infoset/TestInfoset2.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/infoset/TestInfoset2.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/infoset/TestInfoset2.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/infoset/TestInfoset2.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/outputValueCalc/TestOutputValueCalcForwardReference.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/outputValueCalc/TestOutputValueCalcForwardReference.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/outputValueCalc/TestOutputValueCalcForwardReference.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/outputValueCalc/TestOutputValueCalcForwardReference.scala
diff --git 
a/daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/TestXMLLoaderWithLocation.scala
 
b/daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/xml/TestXMLLoaderWithLocation.scala
similarity index 100%
rename from 
daffodil-core/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/TestXMLLoaderWithLocation.scala
rename to 
daffodil-core/src/test/scala/edu/illinois/ncsa/daffodil/xml/TestXMLLoaderWithLocation.scala
diff --git a/daffodil-japi/build.sbt b/daffodil-japi/build.sbt
new file mode 100644
index 000000000..c978491e1
--- /dev/null
+++ b/daffodil-japi/build.sbt
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+addCompilerPlugin("com.typesafe.genjavadoc" %% "genjavadoc-plugin" % "0.10" 
cross CrossVersion.full)
+
+
+lazy val JavaDoc = config("genjavadoc") extend Compile
+
+configs(JavaDoc)
+
+inConfig(JavaDoc)(Defaults.configSettings)
+
+scalacOptions += "-P:genjavadoc:out=" + target.value + "/java"
+
+packageDoc in Compile := (packageDoc in JavaDoc).value
+
+sources in JavaDoc :=
+  (target.value / "java" ** "*.java").get.filterNot(f => 
f.toString.contains("$") || f.toString.contains("packageprivate")) ++
+  (sources in Compile).value.filter(_.getName.endsWith(".java"))
+
+javacOptions in JavaDoc := Seq(
+  "-Xdoclint:none",
+  "-quiet",
+  "-windowtitle", "Apache Daffodil (incubating) " + version.value + " Java 
API",
+  "-doctitle", "<h1>Apache Daffodil (incubating) " + version.value + " Java 
API</h1>"
+)
+
+artifactName in packageDoc in JavaDoc := ((sv, mod, art) => "" + mod.name + 
"_" + sv.binary + "-" + mod.revision + "-javadoc.jar")
diff --git a/daffodil-lib/src/test/scala-new/.keep 
b/daffodil-lib/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/daffodil-lib/src/test/scala/LineCounter.scala 
b/daffodil-lib/src/test/scala/LineCounter.scala
index d79a37425..8fecadd8e 100644
--- a/daffodil-lib/src/test/scala/LineCounter.scala
+++ b/daffodil-lib/src/test/scala/LineCounter.scala
@@ -77,16 +77,14 @@ object LineCounter extends App {
           List("src/main",
             "src/test/resources/test-suite/ibm-contributed",
             "src/test/scala",
-            "src/test/scala-debug",
-            "src/test/scala-new"),
+            "src/test/scala-debug"),
           fileSuffixesToInclude = List(".scala", ".java", ".tdml", ".sbt"), // 
not .xsd as we didn't write the schemas here.
           filesToExclude = List("TresysTests")),
         new LineCounter("daffodil 'ibm1' tresys-supplied tests", root + 
"daffodil", List("daffodil-test-ibm1"),
           List("src/main",
             "src/test/resources/test-suite/tresys-contributed",
             "src/test/scala",
-            "src/test/scala-debug",
-            "src/test/scala-new"),
+            "src/test/scala-debug"),
           filesToExclude = List("IBMTests",
             "AT.tdml")) // giant mostly data tdml file.
             )),
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/functionality/icu/TestBigInteger.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/functionality/icu/TestBigInteger.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/functionality/icu/TestBigInteger.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/functionality/icu/TestBigInteger.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/macros/TestAssertMacros.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/macros/TestAssertMacros.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/macros/TestAssertMacros.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/macros/TestAssertMacros.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/testEquality/TestEqualityOperators.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/testEquality/TestEqualityOperators.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/testEquality/TestEqualityOperators.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/testEquality/TestEqualityOperators.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/IteratorFromCursor.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/IteratorFromCursor.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/IteratorFromCursor.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/IteratorFromCursor.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestBits2.scala
 b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestBits2.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestBits2.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestBits2.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMStack.scala
 b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMStack.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMStack.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMStack.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMaybeInlineForeach.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMaybeInlineForeach.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMaybeInlineForeach.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMaybeInlineForeach.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMemoize1.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMemoize1.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMemoize1.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMemoize1.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMisc.scala
 b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMisc.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestMisc.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestMisc.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestNumbers.scala
 b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestNumbers.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/util/TestNumbers.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/util/TestNumbers.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLiterals.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLiterals.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLiterals.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLiterals.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLoader.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLoader.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLoader.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLLoader.scala
diff --git 
a/daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLPrettyPrinter.scala
 
b/daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLPrettyPrinter.scala
similarity index 100%
rename from 
daffodil-lib/src/test/scala-new/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLPrettyPrinter.scala
rename to 
daffodil-lib/src/test/scala/edu/illinois/ncsa/daffodil/xml/test/unit/TestXMLPrettyPrinter.scala
diff --git a/daffodil-runtime1-unparser/src/test/scala-new/.keep 
b/daffodil-runtime1-unparser/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/daffodil-sapi/build.sbt b/daffodil-sapi/build.sbt
new file mode 100644
index 000000000..48347bf87
--- /dev/null
+++ b/daffodil-sapi/build.sbt
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+scalacOptions in (Compile, doc) := Seq(
+  "-doc-title", "Apache Daffodil (incubating) " + version.value + " Scala API",
+  "-doc-root-content", baseDirectory.value + "/root-doc.txt"
+)
diff --git a/daffodil-tdml/src/test/scala-new/.keep 
b/daffodil-tdml/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/processors/charset/TestLSBFirstAndUSASCII7BitPacked.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/processors/charset/TestLSBFirstAndUSASCII7BitPacked.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/processors/charset/TestLSBFirstAndUSASCII7BitPacked.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/processors/charset/TestLSBFirstAndUSASCII7BitPacked.scala
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestMoreEncodings.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestMoreEncodings.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestMoreEncodings.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestMoreEncodings.scala
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerCommentSyntax.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerCommentSyntax.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerCommentSyntax.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerCommentSyntax.scala
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunner.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerNew.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunner.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerNew.scala
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerTutorial.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerTutorial.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerTutorial.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLRunnerTutorial.scala
diff --git 
a/daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLUnparseCases.scala
 
b/daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLUnparseCases.scala
similarity index 100%
rename from 
daffodil-tdml/src/test/scala-new/edu/illinois/ncsa/daffodil/tdml/TestTDMLUnparseCases.scala
rename to 
daffodil-tdml/src/test/scala/edu/illinois/ncsa/daffodil/tdml/TestTDMLUnparseCases.scala
diff --git 
a/daffodil-test-ibm1/src/main/scala-new/edu/illinois/ncsa/daffodil/.keep 
b/daffodil-test-ibm1/src/main/scala-new/edu/illinois/ncsa/daffodil/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git 
a/daffodil-test-ibm1/src/test/scala-new/edu/illinois/ncsa/daffodil/.keep 
b/daffodil-test-ibm1/src/test/scala-new/edu/illinois/ncsa/daffodil/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git 
a/daffodil-test-ibm1/src/test/scala-new/edu/illinois/ncsa/daffodil/TresysTests3.scala
 
b/daffodil-test-ibm1/src/test/scala/edu/illinois/ncsa/daffodil/TresysTests3.scala
similarity index 100%
rename from 
daffodil-test-ibm1/src/test/scala-new/edu/illinois/ncsa/daffodil/TresysTests3.scala
rename to 
daffodil-test-ibm1/src/test/scala/edu/illinois/ncsa/daffodil/TresysTests3.scala
diff --git a/daffodil-test/src/test/scala-new/.keep 
b/daffodil-test/src/test/scala-new/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/functionality/TestFunctionality.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/functionality/TestFunctionality.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/functionality/TestFunctionality.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/functionality/TestFunctionality.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section00/general/TestGeneralNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section00/general/TestGeneralNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section00/general/TestGeneralNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section00/general/TestGeneralNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section00/general/TestParseUnparsePolicy.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section00/general/TestParseUnparsePolicy.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section00/general/TestParseUnparsePolicy.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section00/general/TestParseUnparsePolicy.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section02/schema_definition_errors/TestSDENew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section02/schema_definition_errors/TestSDENew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section02/schema_definition_errors/TestSDENew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section02/schema_definition_errors/TestSDENew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section02/validation_errors/TestValidationErrNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section02/validation_errors/TestValidationErrNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section02/validation_errors/TestValidationErrNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section02/validation_errors/TestValidationErrNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/facets/TestFacets.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/facets/TestFacetsNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/facets/TestFacets.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/facets/TestFacetsNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/simple_types/TestRuntimeCalendarLanguageNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/simple_types/TestRuntimeCalendarLanguageNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/simple_types/TestRuntimeCalendarLanguageNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/simple_types/TestRuntimeCalendarLanguageNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/simple_types/TestSimpleTypesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/simple_types/TestSimpleTypesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section05/simple_types/TestSimpleTypesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section05/simple_types/TestSimpleTypesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section06/entities/TestEntities.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section06/entities/TestEntitiesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section06/entities/TestEntities.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section06/entities/TestEntitiesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section06/namespaces/TestNamespacesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section06/namespaces/TestNamespacesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section06/namespaces/TestNamespacesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section06/namespaces/TestNamespacesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/discriminators/TestDiscriminators2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/discriminators/TestDiscriminators2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/discriminators/TestDiscriminators2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/discriminators/TestDiscriminators2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/escapeScheme/TestEscapeSchemeUnparseNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/escapeScheme/TestEscapeSchemeUnparseNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/escapeScheme/TestEscapeSchemeUnparseNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/escapeScheme/TestEscapeSchemeUnparseNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/external_variables/TestExternalVariablesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/external_variables/TestExternalVariablesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/external_variables/TestExternalVariablesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/external_variables/TestExternalVariablesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/property_syntax/TestPropertySyntax.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/property_syntax/TestPropertySyntaxNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/property_syntax/TestPropertySyntax.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/property_syntax/TestPropertySyntaxNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/variables/TestVariables2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/variables/TestVariables2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section07/variables/TestVariables2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section07/variables/TestVariables2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section08/property_scoping/TestPropertyScopingNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section08/property_scoping/TestPropertyScopingNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section08/property_scoping/TestPropertyScopingNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section08/property_scoping/TestPropertyScopingNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section10/representation_properties/TestRepProps2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section10/representation_properties/TestRepProps2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section10/representation_properties/TestRepProps2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section10/representation_properties/TestRepProps2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindEndOfParent2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindEndOfParent2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindEndOfParent2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindEndOfParent2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindExplicit2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindExplicit2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindExplicit2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindExplicit2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindPattern2.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindPattern2.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindPattern2.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/lengthKind/TestLengthKindPattern2.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/length_properties/TestLengthPropertiesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/length_properties/TestLengthPropertiesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section12/length_properties/TestLengthPropertiesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section12/length_properties/TestLengthPropertiesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section13/packed/TestPacked.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section13/packed/TestPacked.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section13/packed/TestPacked.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section13/packed/TestPacked.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section13/text_number_props/TestTextNumberPropertiesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section13/text_number_props/TestTextNumberPropertiesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section13/text_number_props/TestTextNumberPropertiesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section13/text_number_props/TestTextNumberPropertiesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/occursCountKind/TestOCKImplicitNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/occursCountKind/TestOCKImplicitNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/occursCountKind/TestOCKImplicitNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/occursCountKind/TestOCKImplicitNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/sequence_groups/TestSequenceGroups3.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/sequence_groups/TestSequenceGroups3.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/sequence_groups/TestSequenceGroups3.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/sequence_groups/TestSequenceGroups3.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section15/choice_groups/TestUnparseChoiceNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section15/choice_groups/TestUnparseChoiceNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section15/choice_groups/TestUnparseChoiceNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section15/choice_groups/TestUnparseChoiceNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestArrayOptionalElemNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestArrayOptionalElemNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestArrayOptionalElemNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestArrayOptionalElemNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayFixedOptionalElemNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayFixedOptionalElemNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayFixedOptionalElemNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayFixedOptionalElemNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayImplicitOptionalElemNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayImplicitOptionalElemNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayImplicitOptionalElemNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayImplicitOptionalElemNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayParsedOptionalElemNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayParsedOptionalElemNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayParsedOptionalElemNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section16/array_optional_elem/TestUnparseArrayParsedOptionalElemNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section23/dfdl_expressions/TestDFDLExpressionsNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section23/dfdl_expressions/TestDFDLExpressionsNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section23/dfdl_expressions/TestDFDLExpressionsNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section23/dfdl_expressions/TestDFDLExpressionsNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section24/regular_expressions/TestRegularExpressionsNew.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section24/regular_expressions/TestRegularExpressionsNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/section24/regular_expressions/TestRegularExpressionsNew.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/section24/regular_expressions/TestRegularExpressionsNew.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/unparser/TestOVCAndLength.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/unparser/TestOVCAndLength.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/unparser/TestOVCAndLength.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/unparser/TestOVCAndLength.scala
diff --git 
a/daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/usertests/TestUserSubmittedTests.scala
 
b/daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/usertests/TestUserSubmittedTestsNew.scala
similarity index 100%
rename from 
daffodil-test/src/test/scala-new/edu/illinois/ncsa/daffodil/usertests/TestUserSubmittedTests.scala
rename to 
daffodil-test/src/test/scala/edu/illinois/ncsa/daffodil/usertests/TestUserSubmittedTestsNew.scala
diff --git a/eclipse-projects/cli-test/.classpath 
b/eclipse-projects/cli-test/.classpath
index 5ea7ffc1c..54674e662 100644
--- a/eclipse-projects/cli-test/.classpath
+++ b/eclipse-projects/cli-test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-cli"/><classpathentry kind="src" 
path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-cli"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
+        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-cli"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-cli"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/core-test/.classpath 
b/eclipse-projects/core-test/.classpath
index c327aea29..f863949e3 100644
--- a/eclipse-projects/core-test/.classpath
+++ b/eclipse-projects/core-test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="src" 
path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-runtime1-unittest"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-lib-unittest"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
+        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-runtime1-unittest"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-lib-unittest"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/lib-test/.classpath 
b/eclipse-projects/lib-test/.classpath
index 71fbba9b2..dd5554223 100644
--- a/eclipse-projects/lib-test/.classpath
+++ b/eclipse-projects/lib-test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry path="src/test/scala" kind="src"/><classpathentry 
path="src/test/scala-new" kind="src"/><classpathentry path="src/test/resources" 
kind="src"/><classpathentry path="src/test/scala-debug" 
kind="src"/><classpathentry path="org.scala-ide.sdt.launching.SCALA_CONTAINER" 
kind="con"/><classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER" 
kind="con"/><classpathentry path="/daffodil-lib" kind="src" 
combineaccessrules="false"/><classpathentry path="/daffodil-macro-lib" 
kind="src" combineaccessrules="false"/><classpathentry 
path="target/eclipse/classes" kind="output"/><!--
+        <classpathentry path="src/test/scala" kind="src"/><classpathentry 
path="src/test/resources" kind="src"/><classpathentry 
path="src/test/scala-debug" kind="src"/><classpathentry 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER" kind="con"/><classpathentry 
path="org.eclipse.jdt.launching.JRE_CONTAINER" kind="con"/><classpathentry 
path="/daffodil-lib" kind="src" combineaccessrules="false"/><classpathentry 
path="/daffodil-macro-lib" kind="src" 
combineaccessrules="false"/><classpathentry path="target/eclipse/classes" 
kind="output"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/runtime1-unparser-test/.classpath 
b/eclipse-projects/runtime1-unparser-test/.classpath
index 821728f62..2b82a3d0b 100644
--- a/eclipse-projects/runtime1-unparser-test/.classpath
+++ b/eclipse-projects/runtime1-unparser-test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/scala"/><classpathentry 
kind="src" path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry kind="output" 
path="bin"/><!--
+        <classpathentry kind="src" path="src/test/scala"/><classpathentry 
kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry 
kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry kind="output" 
path="bin"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/tdml-test/.classpath 
b/eclipse-projects/tdml-test/.classpath
index 1f1f027d9..82b746179 100644
--- a/eclipse-projects/tdml-test/.classpath
+++ b/eclipse-projects/tdml-test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="src" 
path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-io"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
+        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-io"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1-unparser"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/test-ibm1/.classpath 
b/eclipse-projects/test-ibm1/.classpath
index 41f706bed..e4fecf7e0 100644
--- a/eclipse-projects/test-ibm1/.classpath
+++ b/eclipse-projects/test-ibm1/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="src" 
path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
+        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-runtime1"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/eclipse-projects/test/.classpath b/eclipse-projects/test/.classpath
index 81fff4487..d18831865 100644
--- a/eclipse-projects/test/.classpath
+++ b/eclipse-projects/test/.classpath
@@ -1,6 +1,6 @@
 <classpath>
         <!-- This file is updated by the UpdateEclipseClasspath app. -->
-        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="src" 
path="src/test/scala-new"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-core-unittest"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-runtime1"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
+        <classpathentry kind="src" path="src/test/resources"/><classpathentry 
kind="src" path="src/test/scala"/><classpathentry kind="src" 
path="src/test/scala-debug"/><classpathentry kind="con" 
path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/><classpathentry kind="con" 
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-tdml"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-core"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-lib"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-core-unittest"/><classpathentry combineaccessrules="false" 
kind="src" path="/daffodil-runtime1"/><classpathentry 
combineaccessrules="false" kind="src" path="/daffodil-io"/><classpathentry 
combineaccessrules="false" kind="src" 
path="/daffodil-macro-lib"/><classpathentry kind="output" 
path="target/eclipse/classes"/><!--
 ***********
 *********** Entries below this comment are maintained using the 
UpdateEclipseClasspaths
 *********** Utility and should not be modified by hand or using the Eclipse
@@ -85,4 +85,4 @@
                   <attribute name="javadoc_location" 
value="jar:file:lib_managed/docs/org.jdom/jdom2/jdom2-2.0.6-javadoc.jar!/"/>
                 </attributes>
           </classpathentry>
-      </classpath>
\ No newline at end of file
+      </classpath>
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
new file mode 100644
index 000000000..8a49b5276
--- /dev/null
+++ b/project/Dependencies.scala
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import sbt._
+
+object Dependencies {
+  lazy val common = core ++ infoset ++ test
+
+  lazy val core = Seq(
+    "org.scala-lang.modules" %% "scala-xml" % "1.0.6",
+    "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4",
+    "com.ibm.icu" % "icu4j" % "51.1", // new versions avail. 58.1 requires 
code changes
+    "xerces" % "xercesImpl" % "2.10.0",
+    "xml-resolver" % "xml-resolver" % "1.2",
+    "commons-io" % "commons-io" % "2.5",
+    "jline" % "jline" % "2.12.1", // newer versions avail. 3.0.0-M1 requires 
code changes
+  )
+
+  lazy val infoset = Seq(
+    "org.jdom" % "jdom2" % "2.0.6",
+    "com.fasterxml.woodstox" % "woodstox-core" % "5.0.3",
+    "com.fasterxml.jackson.core" % "jackson-core" % "2.8.8"
+  )
+   
+  lazy val cli = Seq( 
+    "org.fusesource.jansi" % "jansi" % "1.14",
+    "org.rogach" %% "scallop" % "0.9.5", // new version avail. 2.0.5 requires 
code changes
+    "net.sf.expectit" % "expectit-core" % "0.8.1" % "test",
+  )
+
+  lazy val test = Seq(
+    "junit" % "junit" % "4.11" % "test",
+    "com.novocode" % "junit-interface" % "0.11" % "test",
+    "org.scalacheck" %% "scalacheck" % "1.13.4" % "test"
+  )
+}
diff --git a/project/build.properties b/project/build.properties
index a6e117b61..394cb75cf 100644
--- a/project/build.properties
+++ b/project/build.properties
@@ -1 +1 @@
-sbt.version=0.13.8
+sbt.version=1.0.4
diff --git a/project/build.scala b/project/build.scala
deleted file mode 100644
index 1a2a399aa..000000000
--- a/project/build.scala
+++ /dev/null
@@ -1,405 +0,0 @@
-/* Copyright (c) 2012-2015 Tresys Technology, LLC. All rights reserved.
- *
- * Developed by: Tresys Technology, LLC
- *               http://www.tresys.com
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
copy of
- * this software and associated documentation files (the "Software"), to deal 
with
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
copies
- * of the Software, and to permit persons to whom the Software is furnished to 
do
- * so, subject to the following conditions:
- *
- *  1. Redistributions of source code must retain the above copyright notice,
- *     this list of conditions and the following disclaimers.
- *
- *  2. Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimers in the
- *     documentation and/or other materials provided with the distribution.
- *
- *  3. Neither the names of Tresys Technology, nor the names of its 
contributors
- *     may be used to endorse or promote products derived from this Software
- *     without specific prior written permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH 
THE
- * SOFTWARE.
- */
-
-import sbt._
-import Keys._
-import scala.language.existentials
-import com.typesafe.sbt.SbtNativePackager._
-import com.typesafe.sbt.packager.Keys._
-import com.typesafe.sbt.packager.rpm.RpmPlugin
-import com.typesafe.sbt.SbtLicenseReport.autoImportImpl._
-import com.typesafe.sbt.license.LicenseCategory
-import com.typesafe.sbt.license.LicenseInfo
-import com.typesafe.sbt.license.DepModuleInfo
-import com.typesafe.sbt.license.DepLicense
-import com.typesafe.sbt.license.DepModuleInfo
-import com.typesafe.sbt.license.Html
-import com.typesafe.sbt.pgp.PgpSettings._
-
-object DaffodilBuild extends Build {
-
-  var s = Defaults.coreDefaultSettings
-  lazy val nopub = Seq(publish := {}, publishLocal := {}, packagedArtifacts := 
Map.empty )
-
-  var cliOnlySettings = packageArchetype.java_application
-
-  // daffodil projects
-  lazy val root = {
-    val r = Project(id = "daffodil", base = file("."), settings = s ++ nopub)
-                    .configs(DebugTest)
-                    .configs(NewTest)
-                    .configs(CliTest)
-                    .aggregate(propgen, macroLib, lib, io, runtime1, 
runtime1Unparser, core, tdml, testIBM1, cli, test, japi, sapi, tutorials, 
testStdLayout)
-  }
-
-  // Note: Removed nopub from macroLib - not sure why macrolib should be 
needed after scala compilation
-  // but data-formats projects that require daffodil-tdml module are failing 
to build because they are missing macroLib.
-  // Issue parked as JIRA DFDL-1430
-
-  lazy val macroLib = Project(id = "daffodil-macro-lib", base = 
file("daffodil-macro-lib"), settings = s)
-
-  lazy val propgen = Project(id = "daffodil-propgen", base = 
file("daffodil-propgen"), settings = s ++ nopub)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-
-
-  lazy val lib     = Project(id = "daffodil-lib", base = file("daffodil-lib"), 
settings = s ++ propgenSettings ++ schemasgenSettings ++ managedgenSettings)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(macroLib)
-
-  lazy val io    = Project(id = "daffodil-io", base = file("daffodil-io"), 
settings = s)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(lib)
-
-  lazy val runtime1    = Project(id = "daffodil-runtime1", base = 
file("daffodil-runtime1"), settings = s)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(io)
-                             .dependsOn(lib % "test->test") // need a utility 
in lib's tests
-
-  lazy val runtime1Unparser    = Project(id = "daffodil-runtime1-unparser", 
base = file("daffodil-runtime1-unparser"), settings = s)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(runtime1)
-                             .dependsOn(lib % "test->test") // need a utility 
in lib's tests
-                             .dependsOn(runtime1 % "test->test") // need a 
utility in runtime1's tests
-
-  lazy val core    = Project(id = "daffodil-core", base = 
file("daffodil-core"), settings = s)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(runtime1Unparser)
-                             .dependsOn(lib % "test->test") // need a utility 
in lib's tests
-                             .dependsOn(runtime1 % "test->test") // need a 
utility in runtime1's tests
-
-  lazy val japi    = Project(id = "daffodil-japi", base = 
file("daffodil-japi"), settings = s ++ genJavaDocSettings)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(core)
-
-  lazy val sapi    = Project(id = "daffodil-sapi", base = 
file("daffodil-sapi"), settings = s ++ sapiSettings)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(core)
-
-  lazy val tdml    = Project(id = "daffodil-tdml", base = 
file("daffodil-tdml"), settings = s)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(core)
-                             .dependsOn(core % "test->test") // need TestUtils
-
-  lazy val cli    = Project(id = "daffodil-cli", base = file("daffodil-cli"), 
settings = s ++ cliOnlySettings)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .configs(CliTest)
-                             .dependsOn(tdml)
-                            .enablePlugins(RpmPlugin)
-
-  lazy val test    = Project(id = "daffodil-test", base = 
file("daffodil-test"), settings = s ++ nopub)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(tdml)
-                             .dependsOn(core % "test->test") // need test 
utilities in core's test dirs
-
-  lazy val testIBM1    = Project(id = "daffodil-test-ibm1", base = 
file("daffodil-test-ibm1"), settings = s ++ nopub)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(tdml)
-
-
-  lazy val tutorials    = Project(id = "tutorials", base = file("tutorials"), 
settings = s ++ nopub)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(tdml)
-
-  lazy val testStdLayout    = Project(id = "test-stdLayout", base = 
file("test-stdLayout"), settings = s ++ nopub)
-                             .configs(DebugTest)
-                             .configs(NewTest)
-                             .dependsOn(tdml)
-                             .dependsOn(core % "test->test")
-
-  //set up 'sbt stage' as a dependency
-  lazy val cliTestTask = Keys.test in CliTest
-  lazy val cliTestOnlyTask = Keys.testOnly in CliTest
-  lazy val cliTestQuickTask = Keys.testQuick in CliTest
-  lazy val stageTask = stage in Compile
-
-  lazy val stageTaskSettings = Seq(
-    (cliTestTask <<= cliTestTask.dependsOn(stageTask)),
-    (cliTestOnlyTask <<= cliTestOnlyTask.dependsOn(stageTask)),
-    (cliTestQuickTask <<= cliTestQuickTask.dependsOn(stageTask)),
-    (cliTask <<= cliTask.dependsOn(stageTask))
-  )
-  cliOnlySettings ++= stageTaskSettings
-
-  cliOnlySettings ++= Seq(exportJars in Test := true)
-
-  val managedGenerator = TaskKey[Unit]("gen-managed", "Generate managed 
sources and resources")
-  lazy val managedgenSettings = managedGenerator <<= Seq(propertyGenerator in 
Compile, schemasGenerator in Compile).dependOn
-
-
-  val propertyGenerator = TaskKey[Seq[File]]("gen-props", "Generate properties 
scala source")
-  lazy val propgenSettings = Seq(
-    sourceGenerators in Compile <+= (propertyGenerator in Compile),
-    propertyGenerator in Compile <<=
-      (sourceManaged in Compile, dependencyClasspath in Runtime in propgen, 
sources in Compile in propgen, resources in Compile in propgen, streams in 
propgen) map {
-        (outdir, cp, inSrc, inRSrc, stream) => {
-          // FileFunction.cached will only run the property generator if any
-          // source or resources in propgen subproject changed
-          val filesToWatch = (inSrc ++ inRSrc).toSet
-          val cachedFun = FileFunction.cached(stream.cacheDirectory / 
"propgen", FilesInfo.lastModified, FilesInfo.exists) {
-            (in: Set[File]) => runPropertyGenerator(outdir, cp.files, 
stream.log)
-          }
-          cachedFun(filesToWatch).toSeq
-        }
-      }
-  )
-
-  def runPropertyGenerator(outdir: File, cp: Seq[File], log: Logger): 
Set[File] = {
-    val mainClass = "edu.illinois.ncsa.daffodil.propGen.PropertyGenerator"
-    val out = new java.io.ByteArrayOutputStream()
-    val forkOpts = new ForkOptions(None, Some(CustomOutput(out)), cp, None, 
Nil, false)
-    val ret = new Fork("java", Some(mainClass)).fork(forkOpts, 
Seq(outdir.toString)).exitValue()
-    if (ret != 0) {
-      sys.error("Failed to generate code")
-    }
-    val in = new java.io.InputStreamReader(new 
java.io.ByteArrayInputStream(out.toByteArray))
-    val bin = new java.io.BufferedReader(in)
-    val iterator = Iterator.continually(bin.readLine()).takeWhile(_ != null)
-    val files = iterator.map { f =>
-      log.info("Generated %s".format(f))
-      new File(f)
-    }.toSet
-    files
-  }
-
-  val schemasGenerator = TaskKey[Seq[File]]("gen-schemas", "Generated DFDL 
schemas")
-  lazy val schemasgenSettings = Seq(
-    resourceGenerators in Compile <+= (schemasGenerator in Compile),
-    schemasGenerator in Compile <<=
-      (resourceManaged in Compile, resources in Compile in propgen, streams in 
propgen) map {
-        (outdir, inRSrc, stream) => {
-          // FileFunction.cached will only run the schema generator if any
-          // resources in propgen subproject changed
-          val filesToWatch = inRSrc.toSet
-          val cachedFun = FileFunction.cached(stream.cacheDirectory / 
"schemasgen", FilesInfo.lastModified, FilesInfo.exists) {
-            (in: Set[File]) => copyResources(outdir, inRSrc.toSet, stream.log)
-          }
-          cachedFun(filesToWatch).toSeq
-        }
-      }
-  )
-
-  def copyResources(outdir: File, inRSrc: Set[File], log: Logger): Set[File] = 
{
-    val dfdlSchemas = inRSrc.filter { f => f.isFile }
-    val managed_resources = dfdlSchemas.map { in =>
-      val out = outdir / "edu" / "illinois" / "ncsa" / "daffodil" / "xsd" / 
in.getName
-      IO.copyFile(in, out)
-      log.info("Generated %s".format(out))
-      out
-    }
-    managed_resources
-  }
-
-  // modify the managed source and resource directories so that any generated 
code can be more easily included in IDE's
-  s ++= Seq(sourceManaged <<= baseDirectory(_ / "src_managed"))
-
-  s ++= Seq(resourceManaged <<= baseDirectory(_ / "resource_managed"))
-
-  // modify the managed libraries directory to be lib/jars/ instead of lib,
-  // allowing us to manage sources/docs in lib/srcs and lib/docs without them
-  // being included as a dependency
-  s ++= Seq(unmanagedBase <<= baseDirectory(_ / "lib" / "jars"))
-
-
-  // creates 'sbt debug:*' tasks, using src/test/scala-debug as the source 
directory
-  lazy val DebugTest = config("debug") extend(Test)
-  lazy val debugSettings: Seq[Setting[_]] = 
inConfig(DebugTest)(Defaults.testSettings ++ Seq(
-    sourceDirectory <<= baseDirectory(_ / "src" / "test"),
-    scalaSource <<= sourceDirectory(_ / "scala-debug"),
-    javaSource <<= sourceDirectory(_ / "java-debug"),
-    exportJars := false,
-    publishArtifact := false
-  ))
-  s ++= Seq(debugSettings : _*)
-
-  // creates 'sbt debug' task, which is essentially an alias for 'sbt 
debug:test'
-  lazy val debugTask = TaskKey[Unit]("debug", "Executes all debug tests")
-  lazy val debugTaskSettings = Seq(
-    debugTask <<= Keys.test in DebugTest
-  )
-  s ++= debugTaskSettings
-
-  // creates 'sbt new:*' tasks, using src/test/scala-new as the source 
directory
-  lazy val NewTest = config("new") extend(Test)
-  lazy val newSettings: Seq[Setting[_]] = 
inConfig(NewTest)(Defaults.testSettings ++ Seq(
-    sourceDirectory <<= baseDirectory(_ / "src" / "test"),
-    scalaSource <<= sourceDirectory(_ / "scala-new"),
-    javaSource <<= sourceDirectory(_ / "java-new"),
-    exportJars := false,
-    publishArtifact := false
-
-  ))
-  s ++= Seq(newSettings : _*)
-
-  // creates 'sbt new' task, which is essentially an alias for 'sbt new:test'
-  lazy val newTask = TaskKey[Unit]("new", "Executes all new tests")
-  lazy val newTaskSettings = Seq(
-    newTask <<= Keys.test in NewTest
-  )
-  s ++= newTaskSettings
-
-  // add scala-new as a source test directory for the 'sbt test' commands
-  lazy val buildNewWithTestSettings = unmanagedSourceDirectories in Test <++= 
baseDirectory { base =>
-    Seq(base / "src/test/scala-new")
-  }
-  s ++= Seq(buildNewWithTestSettings)
-
-  // creates 'sbt cli:*' tasks, using src/test/scala-cli as the source 
directory
-  lazy val CliTest = config("cli") extend(Test)
-  lazy val cliSettings: Seq[Setting[_]] = 
inConfig(CliTest)(Defaults.testSettings ++ Seq(
-    sourceDirectory <<= baseDirectory(_ / "src" / "test"),
-    scalaSource <<= sourceDirectory(_ / "scala-cli"),
-    javaSource <<= sourceDirectory(_ / "java-cli"),
-    exportJars := false,
-    publishArtifact := false
-
-  ))
-  s ++= Seq(cliSettings : _*)
-
-  // creates 'sbt cli' task, which is essentially an alias for 'sbt cli:test'
-  lazy val cliTask = TaskKey[Unit]("cli", "Executes all CLI tests")
-  lazy val cliTaskSettings = Seq(
-    cliTask <<= Keys.test in CliTest
-  )
-  s ++= cliTaskSettings
-
-  // license report configuration
-  val licenseSettings = Seq(
-    licenseReportTitle := "Daffodil_Licenses",  // has an underscore since 
this is used to create the output file
-    licenseConfigurations := Set("compile"),
-    licenseSelection := Seq(LicenseCategory("NCSA"), LicenseCategory("ICU")) 
++ LicenseCategory.all,
-    licenseOverrides := {
-      case DepModuleInfo("commons-io", "commons-io", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
-      case DepModuleInfo("xml-resolver", "xml-resolver", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
-      case DepModuleInfo("org.fusesource.jansi", "jansi", _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
-      case DepModuleInfo("com.fasterxml.jackson.core", "jackson-core" , _) => 
LicenseInfo(LicenseCategory.Apache, "The Apache Software License, Version 2.0", 
"http://www.apache.org/licenses/LICENSE-2.0.html";)
-      case DepModuleInfo("com.ibm.icu", "icu4j" , "51.1") => 
LicenseInfo(LicenseCategory("ICU"), "ICU License", 
"https://ssl.icu-project.org/repos/icu/tags/release-51-2/icu4j/main/shared/licenses/license.html";)
-    },
-    licenseFilter := {
-      case LicenseCategory("NCSA", _) => false
-      case _ => true
-    },
-    licenseReportMakeHeader := {
-      case Html => Html.header1(licenseReportTitle.value.replace("_", " ")) + 
"<p>Daffodil is licensed under the <a 
href='http://opensource.org/licenses/NCSA'>University of Illinois/NCSA Open 
Source License</a>.</p><p>Below are the libraries that Daffodil depends on and 
their licenses.<br></p>"
-      case l => l.header1(licenseReportTitle.value.replace("_", " "))
-    },
-    updateLicenses := {
-      val report = updateLicenses.value
-      val unmanaged_licenses = Seq(
-        DepLicense(DepModuleInfo("passera", "passera", "0.1"), 
LicenseInfo(LicenseCategory.BSD, "BSD", 
"https://github.com/nystrom/scala-unsigned/blob/master/BSD-LICENSE.txt";), 
Set("runtime"))
-      )
-      report.copy(licenses = report.licenses ++ unmanaged_licenses)
-    }
-  )
-  cliOnlySettings ++= licenseSettings
-
-  // native package configuration
-  val packageSettings = Seq(
-    name := "daffodil",
-    packageName := name.value,
-    packageName in Linux := name.value,
-    packageName in Rpm := name.value,
-    mappings in Universal += dumpLicenseReport.value / 
(licenseReportTitle.value + ".html") -> "LICENSES.html",
-    mappings in Universal += baseDirectory.value / ".." / "DISCLAIMER" -> 
"DISCLAIMER",
-    mappings in Universal += baseDirectory.value / "README.md" -> "README.md",
-    mappings in Universal <+= (packageBin in japi in Compile, name in japi in 
Compile, organization, version) map {
-      (bin, n, o, v) => bin -> "lib/%s.%s-%s.jar".format(o, n, v)
-    },
-    mappings in Universal <+= (packageBin in sapi in Compile, name in sapi in 
Compile, organization, version) map {
-      (bin, n, o, v) => bin -> "lib/%s.%s-%s.jar".format(o, n, v)
-    },
-    maintainer in Rpm := "Apache Daffodil <[email protected]>",
-    packageArchitecture in Rpm := "noarch",
-    packageSummary in Rpm := "Open source implementation of the Data Format 
Description Language (DFDL)",
-    packageDescription in Rpm := """Apache Daffodil (incubating) is the open 
source implementation of the Data
-Format Description Language (DFDL), a specification created by the Open Grid
-Forum. DFDL is capable of describing many data formats, including textual and
-binary, commercial record-oriented, scientific and numeric, modern and legacy,
-and many industry standards. It leverages XML technology and concepts, using a
-subset of W3C XML schema type system and annotations to describe such data.
-Daffodil uses this description to parse data into an XML infoset for ingestion
-and validation.""",
-    version in Universal := version.value + "-bin",
-    version in Rpm := {
-      val parts = version.value.split("-", 2)
-      parts(0) // removes snapshot/beta/rc/etc, that should only be in the 
rpmRelease
-    },
-    rpmRelease in Rpm := {
-      val parts = version.value.split("-", 2) // parts(0) is the version, 
parts(1) is snapshot/beta/rc/etc if it exists
-      if (parts.length > 1) {
-        "0." + parts(1).toLowerCase
-      } else {
-        "1"
-      }
-    },
-    rpmVendor in Rpm := "Apache Daffodil",
-    rpmLicense in Rpm := Some( licenses.value.map{ case (n: String, _) => n 
}.mkString(" and ")  )
-  )
-  cliOnlySettings ++= packageSettings
-
-
-  // by default, sbt-pgp tries to read ~/.gnupg for keys. We need to force it
-  // to be .sbt, which makes it easier to pass the keys around without having
-  // to import into gnupg keyrings
-  lazy val pgpSettings = Seq(
-    pgpPublicRing := file(System.getProperty("user.home")) / ".sbt" / "gpg" / 
"daffodil" / "pubring.asc",
-    pgpSecretRing := file(System.getProperty("user.home")) / ".sbt" / "gpg" / 
"daffodil" / "secring.asc"
-  )
-  s ++= pgpSettings
-
-
-  lazy val GenJavaDoc = config("genjavadoc") extend Compile
-  lazy val genJavaDocSettings = inConfig(GenJavaDoc)(Defaults.configSettings) 
++ Seq(
-    libraryDependencies += compilerPlugin("com.typesafe.genjavadoc" %% 
"genjavadoc-plugin" % "0.10" cross CrossVersion.full),
-    scalacOptions <+= target map (t => "-P:genjavadoc:out=" + (t / "java")),
-    packageDoc in Compile <<= packageDoc in GenJavaDoc,
-    sources in GenJavaDoc <<= (target, compile in Compile, sources in Compile) 
map ((t, c, s) => (t / "java" ** "*.java").get.filterNot(f => 
f.toString.contains('$') || f.toString.contains("packageprivate")) ++ 
s.filter(_.getName.endsWith(".java"))),
-    artifactName in packageDoc in GenJavaDoc := ((sv, mod, art) => "" + 
mod.name + "_" + sv.binary + "-" + mod.revision + "-javadoc.jar"),
-    javacOptions in GenJavaDoc <<= (version) map ((v) => Seq("-Xdoclint:none", 
"-quiet", "-windowtitle", "Apache Daffodil (incubating) " + v + " Java API", 
"-doctitle", "<h1>Apache Daffodil (incubating)" + v + " Java API</h1>"))
-  )
-
-  lazy val sapiSettings = Seq(
-    scalacOptions in (Compile, doc) <<= (version, baseDirectory) map ((v,b) => 
Seq("-doc-title", "Apache Daffodil (incubating)" + v + " Scala API", 
"-doc-root-content", b + "/root-doc.txt"))
-  )
-}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 1fc7a26d1..c84fcf395 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,5 +1,3 @@
-addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.1")
-
-addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-M1")
+addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.2")
 
 addSbtPlugin("com.typesafe.sbt" % "sbt-license-report" % "1.2.0")


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to