axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject svn commit: r629488 - in /webservices/axis2/trunk/java/modules: jaxws/src/org/apache/axis2/jaxws/framework/ osgi/src/org/apache/axis2/extensions/osgi/ osgi/src/org/apache/axis2/extensions/osgi/util/
Date Wed, 20 Feb 2008 14:59:45 GMT
Author: dims
Date: Wed Feb 20 06:59:43 2008
New Revision: 629488

URL: http://svn.apache.org/viewvc?rev=629488&view=rev
Log:
Don't try to deploy interfaces, slightly better try/catch and log.info 

Added:
    webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/
    webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleClassLoader.java
    webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleListener.java
Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
    webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/Activator.java
    webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/OSGiAxis2Servlet.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java?rev=629488&r1=629487&r2=629488&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
Wed Feb 20 06:59:43 2008
@@ -177,13 +177,16 @@
             if (wsAnnotation == null) {
                 wspAnnotation = (WebServiceProvider) pojoClass.getAnnotation(WebServiceProvider.class);
             }
-            if (wsAnnotation != null || wspAnnotation != null) {
+            if ((wsAnnotation != null || wspAnnotation != null) && !pojoClass.isInterface())
{
+                log.info("Deploying JAXWS class : " + className);
                 AxisService axisService;
                 axisService =
                         createAxisService(classLoader,
                                 className,
                                 location);
-                axisServiceList.add(axisService);
+                if(axisService != null) {
+                    axisServiceList.add(axisService);
+                }
             }
         }
         int count = axisServiceList.size();
@@ -248,7 +251,13 @@
             IllegalAccessException,
             AxisFault {
         Class pojoClass = Loader.loadClass(classLoader, className);
-        AxisService axisService = DescriptionFactory.createAxisService(pojoClass);
+        AxisService axisService;
+        try {
+            axisService = DescriptionFactory.createAxisService(pojoClass);
+        } catch (Throwable t) {
+            log.info("Exception creating Axis Service : " + t.getCause(), t);
+            return null;
+        }
         if (axisService != null) {
             Iterator operations = axisService.getOperations();
             while (operations.hasNext()) {
@@ -260,7 +269,6 @@
         }
         axisService.setElementFormDefault(false);
         axisService.setFileName(serviceLocation);
-        log.info("Deploying JAXWS Service : " + className);
         return axisService;
     }
 

Modified: webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/Activator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/Activator.java?rev=629488&r1=629487&r2=629488&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/Activator.java
(original)
+++ webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/Activator.java
Wed Feb 20 06:59:43 2008
@@ -19,32 +19,28 @@
 
 package org.apache.axis2.extensions.osgi;
 
+import org.apache.axis2.extensions.osgi.util.BundleListener;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.http.HttpService;
 
-import javax.servlet.Servlet;
-
 public class Activator implements BundleActivator {
 
     BundleContext context;
 
     public void start(BundleContext context) throws Exception {
         this.context = context;
-        doServletRegistration();
-    }
 
-
-    private void doServletRegistration() {
         ServiceReference sr = context.getServiceReference(HttpService.class.getName());
         if (sr != null) {
             HttpService httpServ = (HttpService) context.getService(sr);
 
             try {
-                Servlet servlet = new OSGiAxis2Servlet();
+                OSGiAxis2Servlet servlet = new OSGiAxis2Servlet();
                 httpServ.registerServlet("/axis2",
                         servlet, null, null);
+                context.addBundleListener(new BundleListener(servlet));
             } catch (Exception e) {
                 System.err.println("Exception registering Axis Servlet:"
                         + e);
@@ -54,4 +50,5 @@
 
     public void stop(BundleContext context) throws Exception {
     }
+
 }

Modified: webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/OSGiAxis2Servlet.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/OSGiAxis2Servlet.java?rev=629488&r1=629487&r2=629488&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/OSGiAxis2Servlet.java
(original)
+++ webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/OSGiAxis2Servlet.java
Wed Feb 20 06:59:43 2008
@@ -19,6 +19,7 @@
 
 package org.apache.axis2.extensions.osgi;
 
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.transport.http.AxisServlet;
 
 import javax.servlet.ServletConfig;
@@ -56,5 +57,9 @@
         this.contextRoot = contextPath;
 
         configContext.setContextRoot(contextRoot);
+    }
+    
+    public AxisConfiguration getConfiguration() {
+        return this.axisConfiguration;
     }
 }

Added: webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleClassLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleClassLoader.java?rev=629488&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleClassLoader.java
(added)
+++ webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleClassLoader.java
Wed Feb 20 06:59:43 2008
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.extensions.osgi.util;
+
+import org.osgi.framework.Bundle;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+
+public class BundleClassLoader extends ClassLoader {
+    private final Bundle bundle;
+
+    public BundleClassLoader(Bundle bundle, ClassLoader parent) {
+        super(parent);
+        this.bundle = bundle;
+    }
+
+    protected Class findClass(String name) throws ClassNotFoundException {
+        return bundle.loadClass(name);
+    }
+
+    protected URL findResource(String name) {
+        URL resource = bundle.getResource(name);
+        if (resource != null) {
+            return resource;
+        }
+        return super.findResource(name);
+    }
+
+    protected Enumeration findResources(String name) throws IOException {
+        Enumeration enumeration = bundle.getResources(name);
+        if (enumeration != null) {
+            return enumeration;
+        }
+        return super.findResources(name);
+    }
+
+    public URL getResource(String name) {
+        URL resource = findResource(name);
+        if (resource != null) {
+            return resource;
+        }
+        return super.getResource(name);
+    }
+
+    protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException
{
+        Class clazz;
+        try {
+            clazz = findClass(name);
+        }
+        catch (ClassNotFoundException cnfe) {
+            clazz = super.loadClass(name, resolve);
+        }
+        if (resolve) {
+            resolveClass(clazz);
+        }
+        return clazz;
+    }
+}

Added: webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleListener.java?rev=629488&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleListener.java
(added)
+++ webservices/axis2/trunk/java/modules/osgi/src/org/apache/axis2/extensions/osgi/util/BundleListener.java
Wed Feb 20 06:59:43 2008
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.extensions.osgi.util;
+
+import org.apache.axis2.transport.http.AxisServlet;
+import org.apache.axis2.extensions.osgi.OSGiAxis2Servlet;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+
+public class BundleListener implements SynchronousBundleListener {
+    private OSGiAxis2Servlet servlet;
+
+    public BundleListener(OSGiAxis2Servlet servlet) {
+        this.servlet = servlet;
+    }
+
+    public void bundleChanged(BundleEvent event) {
+        switch (event.getType()) {
+            case BundleEvent.STARTED:
+                onBundleStarted(event.getBundle());
+                break;
+            case BundleEvent.STOPPED:
+                onBundleStopped(event.getBundle());
+                break;
+        }
+    }
+
+    private void onBundleStarted(Bundle bundle) {
+        AxisConfiguration config = servlet.getConfiguration();
+        System.out.println("onBundleStarted : " + bundle);
+    }
+
+    private void onBundleStopped(Bundle bundle) {
+        System.out.println("onBundleStopped : " + bundle);
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message