Author: norman
Date: Wed Mar 23 12:28:38 2011
New Revision: 1084563

URL: http://svn.apache.org/viewvc?rev=1084563&view=rev
Log:
Add support for commons-daemon. See JAMES-1210

Modified:
    james/server/trunk/container-spring/pom.xml
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java
    james/server/trunk/pom.xml

Modified: james/server/trunk/container-spring/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/pom.xml?rev=1084563&r1=1084562&r2=1084563&view=diff
==============================================================================
--- james/server/trunk/container-spring/pom.xml (original)
+++ james/server/trunk/container-spring/pom.xml Wed Mar 23 12:28:38 2011
@@ -427,6 +427,10 @@
   
   <dependencies>
     <dependency>
+      <groupId>commons-daemon</groupId>
+      <artifactId>commons-daemon</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-cli</artifactId>
     </dependency>

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java?rev=1084563&r1=1084562&r2=1084563&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java
 Wed Mar 23 12:28:38 2011
@@ -18,9 +18,11 @@
  ****************************************************************/
 package org.apache.james.container.spring;
 
-import java.io.IOException;
 import java.util.Calendar;
 
+import org.apache.commons.daemon.Daemon;
+import org.apache.commons.daemon.DaemonContext;
+import org.apache.commons.daemon.DaemonInitException;
 import org.apache.james.container.spring.context.JamesServerApplicationContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,16 +30,17 @@ import org.slf4j.LoggerFactory;
 /**
  * Bootstraps James using a Spring container.
  */
-public class Main {
+public class Main implements Daemon{
 
     private static Logger log = LoggerFactory.getLogger(Main.class.getName());
-
-    public static void main(String[] args) throws IOException {
+    private JamesServerApplicationContext context;
+    
+    public static void main(String[] args) throws DaemonInitException, 
Exception {
         
         long start = Calendar.getInstance().getTimeInMillis();
         
-        final JamesServerApplicationContext context = new 
JamesServerApplicationContext(new String[] { "context/james-server-context.xml" 
});
-        context.registerShutdownHook();
+        Main main = new Main();
+        main.init(null);
         
         long end = Calendar.getInstance().getTimeInMillis();
 
@@ -45,4 +48,39 @@ public class Main {
         
     }
 
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.daemon.Daemon#destroy()
+     */
+    public void destroy() {
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.commons.daemon.Daemon#init(org.apache.commons.daemon.DaemonContext)
+     */
+    public void init(DaemonContext arg0) throws DaemonInitException, Exception 
{
+        context = new JamesServerApplicationContext(new String[] { 
"context/james-server-context.xml" });
+        context.registerShutdownHook();       
+        context.start();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.daemon.Daemon#start()
+     */
+    public void start() throws Exception {
+       context.start();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.daemon.Daemon#stop()
+     */
+    public void stop() throws Exception {
+        if (context != null) {
+            context.stop();
+        }
+    }
+
 }

Modified: james/server/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pom.xml?rev=1084563&r1=1084562&r2=1084563&view=diff
==============================================================================
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Wed Mar 23 12:28:38 2011
@@ -928,6 +928,11 @@
     </dependency>
    
     <dependency>
+      <groupId>commons-daemon</groupId>
+      <artifactId>commons-daemon</artifactId>
+      <version>1.0.5</version>
+    </dependency>
+    <dependency>
       <groupId>commons-collections</groupId>
       <artifactId>commons-collections</artifactId>
       <version>3.2.1</version>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to