summaryrefslogtreecommitdiff
path: root/src/com/p4square
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square')
-rw-r--r--src/com/p4square/grow/GrowProcessComponent.java59
-rw-r--r--src/com/p4square/grow/backend/GrowBackend.java23
-rw-r--r--src/com/p4square/grow/frontend/GrowFrontend.java20
3 files changed, 68 insertions, 34 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);