You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2013/02/01 15:34:50 UTC

svn commit: r1441461 - in /activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web: WebConsoleStarter.java config/OsgiConfiguration.java

Author: dejanb
Date: Fri Feb  1 14:34:50 2013
New Revision: 1441461

URL: http://svn.apache.org/viewvc?rev=1441461&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-4034 - osgi web console, remove runtime osgi dependency

Modified:
    activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/WebConsoleStarter.java
    activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/config/OsgiConfiguration.java

Modified: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/WebConsoleStarter.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/WebConsoleStarter.java?rev=1441461&r1=1441460&r2=1441461&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/WebConsoleStarter.java (original)
+++ activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/WebConsoleStarter.java Fri Feb  1 14:34:50 2013
@@ -16,25 +16,17 @@
  */
 package org.apache.activemq.web;
 
-import javax.imageio.spi.ServiceRegistry;
-import javax.jms.ConnectionFactory;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
 import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.cm.ManagedService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 import org.springframework.web.context.support.XmlWebApplicationContext;
 
-import java.util.Dictionary;
-import java.util.Hashtable;
+import javax.jms.ConnectionFactory;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
 
 /**
  * Starts the WebConsole.
@@ -61,13 +53,18 @@ public class WebConsoleStarter implement
         String webconsoleType = System.getProperty("webconsole.type", "embedded");
 
         // detect osgi
-        if (FrameworkUtil.getBundle(getClass()) != null) {
-            webconsoleType = "osgi";
+        try {
+            if (OsgiUtil.isOsgi()) {
+                webconsoleType = "osgi";
+            }
+        } catch (NoClassDefFoundError ignore) {
         }
 
 
         String configuration = "/WEB-INF/webconsole-" + webconsoleType + ".xml";
 
+        LOG.info("Web console type: " + webconsoleType);
+
         XmlWebApplicationContext context = new XmlWebApplicationContext();
         context.setServletContext(servletContext);
         context.setConfigLocations(new String[] {
@@ -95,4 +92,10 @@ public class WebConsoleStarter implement
         // do nothing, since the context is destroyed anyway
     }
 
+    static class OsgiUtil {
+        static boolean isOsgi() {
+            return (FrameworkUtil.getBundle(WebConsoleStarter.class) != null);
+        }
+    }
+
 }

Modified: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/config/OsgiConfiguration.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/config/OsgiConfiguration.java?rev=1441461&r1=1441460&r2=1441461&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/config/OsgiConfiguration.java (original)
+++ activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/config/OsgiConfiguration.java Fri Feb  1 14:34:50 2013
@@ -22,6 +22,7 @@ import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.cm.ManagedService;
+import sun.util.LocaleServiceProviderPool;
 
 import javax.jms.ConnectionFactory;
 import javax.management.remote.JMXServiceURL;
@@ -73,14 +74,16 @@ public class OsgiConfiguration extends A
 
     @Override
     public void updated(Dictionary dictionary) throws ConfigurationException {
-        jmxUrl = dictionary != null ? (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_URL) : null;
-        if (jmxUrl == null) {
-            throw new IllegalArgumentException("A JMS-url must be specified (system property " + SystemPropertiesConfiguration.PROPERTY_JMX_URL);
+        if (dictionary != null) {
+            jmxUrl = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_URL);
+            if (jmxUrl == null) {
+                throw new IllegalArgumentException("A JMS-url must be specified (system property " + SystemPropertiesConfiguration.PROPERTY_JMX_URL);
+            }
+            jmxUser = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_USER);
+            jmxPassword = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_PASSWORD);
+            jmsUrl = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_URL);
+            jmsUser = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_USER);
+            jmsPassword = (String) dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_PASSWORD);
         }
-        jmxUser = (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_USER);
-        jmxPassword = (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMX_PASSWORD);
-        jmxUrl = (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_URL);
-        jmsUser = (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_USER);
-        jmsPassword = (String)dictionary.get(SystemPropertiesConfiguration.PROPERTY_JMS_PASSWORD);
     }
 }