diff options
| author | Jesse Morgan <jesse@jesterpm.net> | 2013-06-03 18:26:07 -0700 | 
|---|---|---|
| committer | Jesse Morgan <jesse@jesterpm.net> | 2013-06-03 18:26:07 -0700 | 
| commit | ee39f861d7a5147a8292647488b7dfc0cbeb1cce (patch) | |
| tree | 49b91d9b3b3c0d45536cdff5a99b774b2cff3e17 /src/com/p4square/grow | |
| parent | 2689b2e69e77677522bc75cb7d790bc30ff644ab (diff) | |
Initial frontend which can only serve static pages.
Diffstat (limited to 'src/com/p4square/grow')
| -rw-r--r-- | src/com/p4square/grow/frontend/GrowFrontend.java | 56 | 
1 files changed, 56 insertions, 0 deletions
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); +        } +    } +}  | 
