import java.nio.file.{Files, StandardCopyOption} import xsbti.compile.CompileAnalysis name := "jpacrepo" organization := "com.oggio88" version := "2.0" resolvers += Resolver.mavenLocal scalaVersion := "2.12.2" libraryDependencies += "org.tukaani" % "xz" % "1.6" libraryDependencies += "org.apache.commons" % "commons-compress" % "1.14" libraryDependencies += "org.projectlombok" % "lombok" % "1.16.18" libraryDependencies += "javax" % "javaee-api" % "7.0" % "provided" //libraryDependencies += "javax" % "javaee-api" % "7.0 " libraryDependencies += "junit" % "junit" % "4.12" % "test" libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test" libraryDependencies += "com.thoughtworks.xstream" % "xstream" % "1.4.10" % "test" libraryDependencies += "commons-io" % "commons-io" % "2.5" % "test" libraryDependencies += "org.jboss" % "jboss-ejb-client" % "4.0.0.CR5" % "test" //libraryDependencies += "org.hibernate.javax.persistence" % "hibernate-jpa-2.0-api" % "1.0.1.Final" libraryDependencies += "org.hibernate" % "hibernate-jpamodelgen" % "5.2.10.Final" % "provided" //libraryDependencies += "org.jboss.resteasy" % "resteasy-jaxrs" % "3.1.3.Final" % "test" //libraryDependencies += "org.jboss.resteasy" % "resteasy-client" % "3.1.3.Final" //libraryDependencies += "org.jboss.resteasy" % "resteasy-jackson-provider" % "3.1.3.Final" % "test" //libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.9.0.pr4" //libraryDependencies += "org.jboss.resteasy" % "resteasy-jaxb-provider" % "3.1.3.Final" % "test" //libraryDependencies += "org.jboss.spec.javax.servlet" % "jboss-servlet-api_3.1_spec" % "1.0.0.Final" % "provided" //libraryDependencies += "org.jboss.spec.javax.ws.rs" % "jboss-jaxrs-api_2.0_spec" % "1.0.0.Final" libraryDependencies += "org.jboss.resteasy" % "resteasy-jaxrs" % "3.0.11.Final" libraryDependencies += "org.jboss.resteasy" % "resteasy-client" % "3.0.11.Final" libraryDependencies += "org.jboss.resteasy" % "resteasy-jackson-provider" % "3.0.11.Final" libraryDependencies += "org.jboss.resteasy" % "resteasy-jaxb-provider" % "3.0.11.Final" enablePlugins(WarPlugin) artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) => artifact.name + "-" + module.revision + "." + artifact.extension } //javacOptions += "-g" val compileNim = TaskKey[File]("compileNim", "Compile nim code of web interface", KeyRanks.ATask) compileNim := { val result = new File("nim/nimcache/jpacrepo.js") val cmd = s"nim js -d:release -d:serverURL= nim/jpacrepo.nim" println(cmd) sys.process.stringToProcess(cmd).! match { case 0 => case _ => throw new RuntimeException("Error occurred during deploy") } // val outfile = (baseDirectory.value / "nim" / "nimcache" / "jpacrepo.min.js").toString // val closureCmd = s"closure-compiler --strict_mode_input=false -O ADVANCED --language_in ECMASCRIPT5 --language_out ECMASCRIPT5 --js_output_file=${outfile} ${result.getAbsolutePath}" // println(closureCmd) // sys.process.stringToProcess(closureCmd).! match // { // case 0 => // case _ => throw new RuntimeException("Error occurred during deploy") // } result } webappPostProcess := { val baseDir = baseDirectory.value / "nim" / "static" val nimOutput = compileNim.value webappDir: File => { IO.copyFile(baseDir / "index.html", webappDir / "index.html") IO.copyFile(baseDir / "jpacrepo.css", webappDir / "jpacrepo.css") IO.copyFile(nimOutput, webappDir / "jpacrepo.js") } } val wildflyUsername = SettingKey[String]("wildfly-username", "The account username to use to connect to wildfly with jboss-cli.sh") val wildflyPassword = SettingKey[String]("wildfly-password", "The account password to use to connect to wildfly with jboss-cli.sh") val wildflyURL = SettingKey[String]("wildfly-url", "The username to use to connect to wildfly with jboss-cli.sh") wildflyUsername := "admin" wildflyPassword := "123456" wildflyURL := "localhost:1234" val deploy2Wildfly = TaskKey[Unit]("deploy2Wildfly", "Deploy to a wildfly server instance", KeyRanks.ATask) deploy2Wildfly := { val cmd = s"/opt/wildfly/bin/jboss-cli.sh " + s"--controller='${wildflyURL.value}' " + s"--connect --user='${wildflyUsername.value}' " + s"--password='${wildflyPassword.value}' " + s"--command=\'deploy ${(packagedArtifact in(Compile, Keys.`package`)).value._2} --force\'" println(cmd) sys.process.stringToProcess(cmd).! match { case 0 => case _ => throw new RuntimeException("Error occurred during deploy") } }