diff options
Diffstat (limited to 'src/com/p4square/grow/frontend')
-rw-r--r-- | src/com/p4square/grow/frontend/GrowFrontend.java | 42 | ||||
-rw-r--r-- | src/com/p4square/grow/frontend/SurveyPageResource.java | 7 |
2 files changed, 46 insertions, 3 deletions
diff --git a/src/com/p4square/grow/frontend/GrowFrontend.java b/src/com/p4square/grow/frontend/GrowFrontend.java index 72e2a8f..e3662d5 100644 --- a/src/com/p4square/grow/frontend/GrowFrontend.java +++ b/src/com/p4square/grow/frontend/GrowFrontend.java @@ -13,6 +13,8 @@ import org.apache.log4j.Logger; import net.jesterpm.fmfacade.FMFacade; import net.jesterpm.fmfacade.FreeMarkerPageResource; +import com.p4square.grow.config.Config; + /** * This is the Restlet Application implementing the Grow project front-end. * It's implemented as an extension of FMFacade that connects interactive pages @@ -24,6 +26,34 @@ import net.jesterpm.fmfacade.FreeMarkerPageResource; public class GrowFrontend extends FMFacade { private static Logger cLog = Logger.getLogger(GrowFrontend.class); + private Config mConfig; + + public GrowFrontend() { + mConfig = new Config(); + } + + public Config getConfig() { + return mConfig; + } + + @Override + public void start() throws Exception { + super.start(); + + final String configDomain = + getContext().getParameters().getFirstValue("config-domain"); + if (configDomain != null) { + mConfig.setDomain(configDomain); + } + + final String configFilename = + getContext().getParameters().getFirstValue("config-file"); + + if (configFilename != null) { + mConfig.updateConfig(configFilename); + } + } + @Override protected Router createRouter() { Router router = new Router(getContext()); @@ -54,7 +84,17 @@ public class GrowFrontend extends FMFacade { final Component component = new Component(); component.getServers().add(Protocol.HTTP, 8085); component.getClients().add(Protocol.HTTP); - component.getDefaultHost().attach(new GrowFrontend()); + + // Setup App + GrowFrontend app = new GrowFrontend(); + + // Load an optional config file from the first argument. + app.getConfig().setDomain("dev"); + if (args.length == 1) { + app.getConfig().updateConfig(args[0]); + } + + component.getDefaultHost().attach(app); // Setup shutdown hook Runtime.getRuntime().addShutdownHook(new Thread() { diff --git a/src/com/p4square/grow/frontend/SurveyPageResource.java b/src/com/p4square/grow/frontend/SurveyPageResource.java index 72a2d34..e7fcd07 100644 --- a/src/com/p4square/grow/frontend/SurveyPageResource.java +++ b/src/com/p4square/grow/frontend/SurveyPageResource.java @@ -23,6 +23,8 @@ import net.jesterpm.fmfacade.json.JsonResponse; import net.jesterpm.fmfacade.FreeMarkerPageResource; +import com.p4square.grow.config.Config; + /** * SurveyPageResource handles rendering the survey and processing user's answers. * @@ -36,6 +38,7 @@ import net.jesterpm.fmfacade.FreeMarkerPageResource; public class SurveyPageResource extends FreeMarkerPageResource { private static Logger cLog = Logger.getLogger(SurveyPageResource.class); + private Config mConfig; private Template mSurveyTemplate; private JsonRequestClient mJsonClient; @@ -48,6 +51,7 @@ public class SurveyPageResource extends FreeMarkerPageResource { super.doInit(); GrowFrontend growFrontend = (GrowFrontend) getApplication(); + mConfig = growFrontend.getConfig(); mSurveyTemplate = growFrontend.getTemplate("templates/survey.ftl"); if (mSurveyTemplate == null) { cLog.fatal("Could not find survey template."); @@ -172,8 +176,7 @@ public class SurveyPageResource extends FreeMarkerPageResource { * @return The backend endpoint URI */ private String getBackendEndpoint() { - // TODO: Config - return "http://localhost:9095"; + return mConfig.getString("backendUri", "http://localhost:9095"); } /** |