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");      }      /** | 
