You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2011/01/13 17:03:20 UTC

svn commit: r1058635 - /activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala

Author: chirino
Date: Thu Jan 13 16:03:19 2011
New Revision: 1058635

URL: http://svn.apache.org/viewvc?rev=1058635&view=rev
Log:
Better config validation and web server now stops properly (was hanging)

Modified:
    activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala

Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala?rev=1058635&r1=1058634&r2=1058635&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/web/WebServer.scala Thu Jan 13 16:03:19 2011
@@ -43,11 +43,34 @@ object JettyWebServerFactory extends Web
   def create(broker:Broker): WebServer = new JettyWebServer(broker)
 
   def validate(config: WebAdminDTO, reporter: Reporter): ReporterLevel.ReporterLevel = {
-    ReporterLevel.INFO
+    import ReporterLevel._
+    if( JettyWebServer.webapp==null ) {
+      reporter.report(ERROR, "The apollo.home or apollo.webapp system property must be set so that the webconsole can be started.")
+      return ERROR
+    }
+    return INFO
   }
 }
 
-object JettyWebServer extends Log
+object JettyWebServer extends Log {
+
+  val LOAD_JETTY = classOf[LoginService]
+
+  val webapp = {
+    import FileSupport._
+
+    val x = System.getProperty("apollo.webapp")
+    if( x != null ) {
+      new File(x)
+    } else {
+      (Option(System.getProperty("apollo.home")).flatMap { home=>
+        val lib = new File(home) / "lib"
+        lib.list.find( _.matches("""apollo-web-.+-slim.war""")).map(lib / _)
+      }).getOrElse(null)
+    }
+  }
+
+}
 
 class JettyWebServer(val broker:Broker) extends WebServer with BaseService {
   import JettyWebServer._
@@ -84,17 +107,6 @@ class JettyWebServer(val broker:Broker) 
       connector.setPort(port)
 
 
-      val webapp = {
-        val x = System.getProperty("apollo.webapp")
-        if( x != null ) {
-          new File(x)
-        } else {
-          val home = system_dir("apollo.home")
-          val lib = home / "lib"
-          lib / lib.list.find( _.matches("""apollo-web-.+-slim.war""")).get
-        }
-      }
-
       def admin_app = {
         var app_context = new WebAppContext
         app_context.setContextPath(prefix)
@@ -150,6 +162,7 @@ class JettyWebServer(val broker:Broker) 
     this.synchronized {
       server.stop
       server = null
+      on_completed.run
     }
   }