diff options
-rw-r--r-- | src/com/p4square/grow/GrowProcessComponent.java | 59 | ||||
-rw-r--r-- | src/com/p4square/grow/backend/GrowBackend.java | 23 | ||||
-rw-r--r-- | src/com/p4square/grow/frontend/GrowFrontend.java | 20 | ||||
-rw-r--r-- | src/grow.properties | 5 | ||||
-rw-r--r-- | web/META-INF/context.xml | 2 | ||||
-rw-r--r-- | web/WEB-INF/restlet.xml | 20 | ||||
-rw-r--r-- | web/WEB-INF/web.xml | 4 |
7 files changed, 73 insertions, 60 deletions
diff --git a/src/com/p4square/grow/GrowProcessComponent.java b/src/com/p4square/grow/GrowProcessComponent.java new file mode 100644 index 0000000..4196a5e --- /dev/null +++ b/src/com/p4square/grow/GrowProcessComponent.java @@ -0,0 +1,59 @@ +/* + * Copyright 2013 Jesse Morgan + */ + +package com.p4square.grow; + +import org.restlet.Component; +import org.restlet.data.Protocol; + +import com.p4square.grow.backend.GrowBackend; +import com.p4square.grow.config.Config; +import com.p4square.grow.frontend.GrowFrontend; + +/** + * + * @author Jesse Morgan <jesse@jesterpm.net> + */ +public class GrowProcessComponent extends Component { + private final Config mConfig; + + /** + * Create a new Grow Process website component combining a frontend and backend. + */ + public GrowProcessComponent() throws Exception { + // Clients + getClients().add(Protocol.FILE); + getClients().add(Protocol.HTTP); + getClients().add(Protocol.HTTPS); + + // Prepare mConfig + mConfig = new Config(); + + // Frontend + GrowFrontend frontend = new GrowFrontend(mConfig); + getDefaultHost().attach(frontend); + + // Backend + GrowBackend backend = new GrowBackend(mConfig); + getInternalRouter().attach("/backend", backend); + } + + @Override + public void start() throws Exception { + // Load mConfigs + mConfig.updateConfig(this.getClass().getResourceAsStream("/grow.properties")); + + String configDomain = getContext().getParameters().getFirstValue("com.p4square.grow.configDomain"); + if (configDomain != null) { + mConfig.setDomain(configDomain); + } + + String configFilename = getContext().getParameters().getFirstValue("com.p4square.grow.configFile"); + if (configFilename != null) { + mConfig.updateConfig(configFilename); + } + + super.start(); + } +} diff --git a/src/com/p4square/grow/backend/GrowBackend.java b/src/com/p4square/grow/backend/GrowBackend.java index 09c1d84..7da6fff 100644 --- a/src/com/p4square/grow/backend/GrowBackend.java +++ b/src/com/p4square/grow/backend/GrowBackend.java @@ -34,7 +34,11 @@ public class GrowBackend extends Application { private final CassandraDatabase mDatabase; public GrowBackend() { - mConfig = new Config(); + this(new Config()); + } + + public GrowBackend(Config config) { + mConfig = config; mDatabase = new CassandraDatabase(); } @@ -71,23 +75,6 @@ public class GrowBackend extends Application { public void start() throws Exception { super.start(); - // Load config - final String configDomain = - getContext().getParameters().getFirstValue("configDomain"); - if (configDomain != null) { - mConfig.setDomain(configDomain); - } - - mConfig.updateConfig(this.getClass().getResourceAsStream("/grow.properties")); - - final String configFilename = - getContext().getParameters().getFirstValue("configFile"); - - if (configFilename != null) { - LOG.info("Loading configuration from " + configFilename); - mConfig.updateConfig(configFilename); - } - // Setup database mDatabase.setClusterName(mConfig.getString("clusterName", "Dev Cluster")); mDatabase.setKeyspaceName(mConfig.getString("keyspace", "GROW")); diff --git a/src/com/p4square/grow/frontend/GrowFrontend.java b/src/com/p4square/grow/frontend/GrowFrontend.java index 305622d..a1e3488 100644 --- a/src/com/p4square/grow/frontend/GrowFrontend.java +++ b/src/com/p4square/grow/frontend/GrowFrontend.java @@ -55,28 +55,16 @@ public class GrowFrontend extends FMFacade { mConfig = new Config(); } + public GrowFrontend(Config config) { + mConfig = config; + } + public Config getConfig() { return mConfig; } @Override public synchronized void start() throws Exception { - final String configDomain = - getContext().getParameters().getFirstValue("configDomain"); - if (configDomain != null) { - mConfig.setDomain(configDomain); - } - - mConfig.updateConfig(this.getClass().getResourceAsStream("/grow.properties")); - - final String configFilename = - getContext().getParameters().getFirstValue("configFile"); - - if (configFilename != null) { - LOG.info("Loading configuration from " + configFilename); - mConfig.updateConfig(configFilename); - } - Template errorTemplate = getTemplate("templates/error.ftl"); if (errorTemplate != null) { ErrorPage.setTemplate(errorTemplate); diff --git a/src/grow.properties b/src/grow.properties index 6dd282c..d9d3f29 100644 --- a/src/grow.properties +++ b/src/grow.properties @@ -7,11 +7,6 @@ dev.dynamicRoot = *.staticRoot = /grow-frontend *.dynamicRoot = /grow-frontend -*.f1ConsumerKey = 123 -*.f1ConsumerSecret = password-here -*.f1BaseUrl = staging.fellowshiponeapi.com -*.f1ChurchCode = pfseawa - prod.postAccountCreationPage = http://foursquaregrow.com/login.html # Backend Settings diff --git a/web/META-INF/context.xml b/web/META-INF/context.xml index 24744f5..c8a8f07 100644 --- a/web/META-INF/context.xml +++ b/web/META-INF/context.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <Context> - <Parameter name="configFile" value="grow.properties" override="false"/> + <Parameter name="com.p4square.grow.configDomain" value="prod" override="true"/> </Context> diff --git a/web/WEB-INF/restlet.xml b/web/WEB-INF/restlet.xml deleted file mode 100644 index 67ee36d..0000000 --- a/web/WEB-INF/restlet.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<component xmlns="http://www.restlet.org/schemas/2.0/Component"> - <client protocol="FILE" /> - <client protocol="HTTP" /> - <client protocol="HTTPS" /> - <server protocols="HTTP HTTPS" /> - - <defaultHost> - <attach uripattern="/images" targetDescriptor="war:///images" /> - <attach uripattern="/scripts" targetDescriptor="war:///scripts" /> - <attach uripattern="/style.css" targetDescriptor="war:///style.css" /> - <attach uripattern="/favicon.ico" targetDescriptor="war:///favicon.ico" /> - <attach uriPattern="" targetClass="com.p4square.grow.frontend.GrowFrontend" /> - </defaultHost> - - <internalRouter> - <attach uriPattern="/backend" - targetClass="com.p4square.grow.backend.GrowBackend" /> - </internalRouter> -</component> diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml index 758b004..4b85bde 100644 --- a/web/WEB-INF/web.xml +++ b/web/WEB-INF/web.xml @@ -14,6 +14,10 @@ <servlet-class> org.restlet.ext.servlet.ServerServlet </servlet-class> + <init-param> + <param-name>org.restlet.component</param-name> + <param-value>com.p4square.grow.GrowProcessComponent</param-value> + </init-param> </servlet> <!-- Catch all requests --> |