Skip to content

Commit

Permalink
Added gast configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
jeichar committed Dec 1, 2008
1 parent 14d28ac commit 329d9e1
Show file tree
Hide file tree
Showing 5 changed files with 179 additions and 11 deletions.
4 changes: 2 additions & 2 deletions deploy/configgy.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
maxBackups = 0
apps="geonetwork,geoserver,intermap"
apps=["geonetwork","geoserver","intermap"]

<aliases>

Expand Down Expand Up @@ -35,7 +35,7 @@ apps="geonetwork,geoserver,intermap"
downloadUrl = "https://project.camptocamp.com/svn/chtopo_geocat2/trunk"

# the command to shutdown the server. This is executed in a shell
shutdown = "$(base)/bin/shutodwn.sh "
shutdown = "$(base)/bin/shutdown.sh "

# the command to startup the server. This is executed in a shell
startup = "$(base)/bin/startup.sh "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,7 @@ class Configuration(val configFile:File, val deployApp:File) {
def shutdown(alias:String) = find(alias,"shutdown")
def startup(alias:String) = find(alias,"startup")

def webapps:Iterable[String] = {
val decl = config.getString("apps")
assert (decl.isDefined, "the configurations file must declare a 'apps' property")
decl.get.split(",")
}
def webapps:Iterable[String] = config.getList("apps")

def isLocalhost(alias:String) = localhosts.contains(alias)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import scalax.io.Implicits.fileExtras
import scalax.io.InputStreamResource
import scant.Ant
import scala.xml.XML
import java.net.URLClassLoader

class CheckoutAppsStrategy extends FetchStrategy {
def downloadApp(alias:Alias){
Expand All @@ -21,12 +22,16 @@ class CheckoutAppsStrategy extends FetchStrategy {
}else{
Utils.doCheckout(configDir, alias.downloadUrl)
}

build(configDir/"jeeves/build.xml")
build(configDir/"build.xml")


runGast(alias, configDir)

val webAppDir = new File(alias.tmpWebappBaseDir)

for( app <- alias.webapps; path = webAppDir/app ){
println(app)
path.deleteRecursively
path.mkdirs
val built = configDir/"web"/app
Expand All @@ -36,6 +41,21 @@ class CheckoutAppsStrategy extends FetchStrategy {
Utils.copyTree(built, path)
}
}

def runGast(alias:Alias, configDir:File){
InstallOp.stopServer(alias)
val urls = Array((configDir/"gast/gast.jar").toURI.toURL)
val loader = URLClassLoader.newInstance(urls, getClass.getClassLoader)
System.setProperty("GEONETWORK_HOME",configDir.getAbsolutePath)
System.setProperty("java.awt.headless","true")
val gast = loader.loadClass("org.fao.gast.Gast")
val constructor = gast.getMethod("main",classOf[Array[String]])
println("Running gast -setup")
constructor.invoke(null, Array(Array("-setup")):_*)
println("Running gast -setupdb")
constructor.invoke(null, Array(Array("-setupdb")):_*)
System.setProperty("java.awt.headless","false")
}

def build( buildFile:File) {
val properties = new java.util.Properties()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
maxBackups = 5
apps="geonetwork,geoserver,intermap"
apps= ["geonetwork","geoserver","intermap"]

<aliases>
<local inherit="aliases.default">
Expand Down Expand Up @@ -33,6 +33,6 @@ apps="geonetwork,geoserver,intermap"
class="validator"
</validator>
</validators>
fetch_strategy = "fetcher"
post_action="postAction"
fetchStrategy = "fetcher"
postAction="postAction"
</tool_config>
152 changes: 152 additions & 0 deletions deploy/src/test/scala/org/secureows/deploy/ConfigParserTest.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
package org.secureows.deploy

class ConfigParserTest extends org.specs.runner.JUnit4(ConfigParserSpec){}

import org.specs._
import SpecUtil._
import java.io._
import net.lag.configgy._

object ConfigParserSpec extends Specification{

class FakeImporter extends Importer {
def importFile(filename: String): String = {
filename match {
case "test1" =>
"staff = \"weird skull\"\n"
case "test2" =>
"<inner>\n" +
" cat=\"meow\"\n" +
" include \"test3\"\n" +
" dog ?= \"blah\"\n" +
"</inner>"
case "test3" =>
"dog=\"bark\"\n" +
"cat ?= \"blah\"\n"
case "test4" =>
"cow=\"moo\"\n"
}
}
}

def parse(in: String) = {
val attr = new Config
attr.importer = new FakeImporter
attr.load(in)
attr
}
/*
"handle camel case id in block" in {
val data =
"<daemon>\n" +
" useLess = 3\n" +
"</daemon>\n"
val exp =
"{: daemon={daemon: useless=\"3\" } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.useLess", "14") mustEqual "3"
}
"handle dash block" in {
val data =
"<daemon>\n" +
" <base-dat>\n" +
" ulimit_fd = 32768\n" +
" </base-dat>\n" +
"</daemon>\n"
val exp =
"{: daemon={daemon: base-dat={daemon.base-dat: ulimit_fd=\"32768\" } } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.base-dat.ulimit_fd", "14") mustEqual "32768"
}
"handle assignment after block" in {
val data =
"<daemon>\n" +
" <base>\n" +
" ulimit_fd = 32768\n" +
" </base>\n" +
" useless = 3\n" +
"</daemon>\n"
val exp =
"{: daemon={daemon: base={daemon.base: ulimit_fd=\"32768\" } useless=\"3\" } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.useless", "14") mustEqual "3"
a.getString("daemon.base.ulimit_fd", "14") mustEqual "32768"
}
*/
"handle camelcase block" in {
val data =
"<daemon>\n" +
" <baseDat>\n" +
" ulimit_fd = 32768\n" +
" </baseDat>\n" +
" useless = 3\n" +
"</daemon>\n"
val exp =
"{: daemon={daemon: basedat={daemon.baseDat: ulimit_fd=\"32768\" } useless=\"3\" } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.useless", "14") mustEqual "3"
a.getString("daemon.baseDat.ulimit_fd", "14") mustEqual "32768"
}

"two consecutive groups" in {
val data =
"<daemon>\n" +
" useless = 3\n" +
"</daemon>\n" +
"\n" +
"<upp inherit=\"daemon\">\n" +
" uid = 16\n" +
"</upp>\n"
val exp =
"{: daemon={daemon: useless=\"3\" } " +
"upp={upp (inherit=daemon): uid=\"16\" } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.useless", "14") mustEqual "3"
a.getString("upp.uid", "1") mustEqual "16"
}


"handle a complex case" in {
val data =
"<daemon>\n" +
" useless = 3\n" +
" <base>\n" +
" ulimit_fd = 32768\n" +
" </base>\n" +
"</daemon>\n" +
"\n" +
"<upp inherit=\"daemon.base\">\n" +
" uid = 16\n" +
" <alpha inherit=\"upp\">\n" +
" name=\"alpha\"\n" +
" </alpha>\n" +
" <beta inherit=\"daemon\">\n" +
" name=\"beta\"\n" +
" </beta>\n" +
"</upp>\n"
val exp =
"{: daemon={daemon: base={daemon.base: ulimit_fd=\"32768\" } useless=\"3\" } " +
"upp={upp (inherit=daemon.base): alpha={upp.alpha (inherit=upp): name=\"alpha\" } " +
"beta={upp.beta (inherit=daemon): name=\"beta\" } uid=\"16\" } }"
val a = parse(data)
a.toString mustEqual exp
a.getString("daemon.useless", "14") mustEqual "3"
a.getString("upp.uid", "1") mustEqual "16"
a.getString("upp.ulimit_fd", "1024") mustEqual "32768"
a.getString("upp.name", "23") mustEqual "23"
a.getString("upp.alpha.name", "") mustEqual "alpha"
a.getString("upp.beta.name", "") mustEqual "beta"
a.getString("upp.alpha.ulimit_fd", "") mustEqual "32768"
a.getString("upp.beta.useless", "") mustEqual "3"
a.getString("upp.alpha.useless", "") mustEqual ""
a.getString("upp.beta.ulimit_fd", "") mustEqual ""
}

}

0 comments on commit 329d9e1

Please sign in to comment.