summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2013-06-03 18:26:07 -0700
committerJesse Morgan <jesse@jesterpm.net>2013-06-03 18:26:07 -0700
commitee39f861d7a5147a8292647488b7dfc0cbeb1cce (patch)
tree49b91d9b3b3c0d45536cdff5a99b774b2cff3e17
parent2689b2e69e77677522bc75cb7d790bc30ff644ab (diff)
Initial frontend which can only serve static pages.
-rw-r--r--build.xml9
-rw-r--r--src/com/p4square/grow/frontend/GrowFrontend.java56
2 files changed, 63 insertions, 2 deletions
diff --git a/build.xml b/build.xml
index 71fb93b..717de65 100644
--- a/build.xml
+++ b/build.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<project name="grow-frontend" default="build" basedir=".">
- <property name="main.class" value="com.p4square.grow.frontend.TODO" />
-
+ <property name="main.class" value="com.p4square.grow.frontend.GrowFrontend" />
+
<property file="${user.home}/.jesterpm-build-tools.properties" />
<property name="jesterpm.buildtools.root" value="../jesterpm-build-tools" />
<import file="${jesterpm.buildtools.root}/ant/tomcat-common.xml" />
@@ -10,4 +10,9 @@
<!-- Targets to get this project ready -->
<target name="bootstrap" depends="setup-tomcat" />
+ <target name="frontend" depends="compile">
+ <java classname="com.p4square.grow.frontend.GrowFrontend"
+ classpathref="classpath.run" fork="true" />
+ </target>
+
</project>
diff --git a/src/com/p4square/grow/frontend/GrowFrontend.java b/src/com/p4square/grow/frontend/GrowFrontend.java
new file mode 100644
index 0000000..7283ea1
--- /dev/null
+++ b/src/com/p4square/grow/frontend/GrowFrontend.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2013 Jesse Morgan <jesse@jesterpm.net>
+ */
+
+package com.p4square.grow.frontend;
+
+import org.restlet.Component;
+import org.restlet.data.Protocol;
+import org.restlet.routing.Router;
+
+import org.apache.log4j.Logger;
+
+import net.jesterpm.fmfacade.FMFacade;
+import net.jesterpm.fmfacade.FreeMarkerPageResource;
+
+/**
+ * This is the Restlet Application implementing the Grow project front-end.
+ * It's implemented as an extension of FMFacade that connects interactive pages
+ * with various ServerResources. This class provides a main method to start a
+ * Jetty instance for testing.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public class GrowFrontend extends FMFacade {
+ private static Logger cLog = Logger.getLogger(GrowFrontend.class);
+
+ /**
+ * Stand-alone main for testing.
+ */
+ public static void main(String[] args) {
+ // Start the HTTP Server
+ final Component component = new Component();
+ component.getServers().add(Protocol.HTTP, 8085);
+ component.getClients().add(Protocol.HTTP);
+ component.getDefaultHost().attach(new GrowFrontend());
+
+ // Setup shutdown hook
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ public void run() {
+ try {
+ component.stop();
+ } catch (Exception e) {
+ cLog.error("Exception during cleanup", e);
+ }
+ }
+ });
+
+ cLog.info("Starting server...");
+
+ try {
+ component.start();
+ } catch (Exception e) {
+ cLog.fatal("Could not start: " + e.getMessage(), e);
+ }
+ }
+}