You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/01/16 17:02:57 UTC

svn commit: r1232046 - in /cxf/dosgi/trunk: distribution/multi-bundle/ distribution/multi-bundle/src/main/resources/ distribution/single-bundle/ dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hand...

Author: sergeyb
Date: Mon Jan 16 16:02:57 2012
New Revision: 1232046

URL: http://svn.apache.org/viewvc?rev=1232046&view=rev
Log:
Some cleanup/fixes for HTTP Context related deployments

Modified:
    cxf/dosgi/trunk/distribution/multi-bundle/pom.xml
    cxf/dosgi/trunk/distribution/multi-bundle/src/main/resources/distro_bundles.xml
    cxf/dosgi/trunk/distribution/single-bundle/pom.xml
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java
    cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
    cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/TopologyManager.java
    cxf/dosgi/trunk/parent/pom.xml

Modified: cxf/dosgi/trunk/distribution/multi-bundle/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/multi-bundle/pom.xml?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/distribution/multi-bundle/pom.xml (original)
+++ cxf/dosgi/trunk/distribution/multi-bundle/pom.xml Mon Jan 16 16:02:57 2012
@@ -147,17 +147,17 @@
     <dependency>
       <groupId>org.ops4j.pax.web</groupId>
       <artifactId>pax-web-spi</artifactId>
-      <version>1.0.8</version>
+      <version>${pax.web.version}</version>
     </dependency>
     <dependency>
       <groupId>org.ops4j.pax.web</groupId>
       <artifactId>pax-web-runtime</artifactId>
-      <version>1.0.8</version>
+      <version>${pax.web.version}</version>
     </dependency>
     <dependency>
       <groupId>org.ops4j.pax.web</groupId>
       <artifactId>pax-web-jetty</artifactId>
-      <version>1.0.8</version>
+      <version>${pax.web.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.servicemix.specs</groupId>

Modified: cxf/dosgi/trunk/distribution/multi-bundle/src/main/resources/distro_bundles.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/multi-bundle/src/main/resources/distro_bundles.xml?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/distribution/multi-bundle/src/main/resources/distro_bundles.xml (original)
+++ cxf/dosgi/trunk/distribution/multi-bundle/src/main/resources/distro_bundles.xml Mon Jan 16 16:02:57 2012
@@ -20,9 +20,9 @@
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/spring-osgi-core-${spring.osgi.version}.jar</bundle>
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/spring-osgi-extender-${spring.osgi.version}.jar</bundle>
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/jetty-all-server-${jetty.version}.jar</bundle>
-  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-spi-1.0.8.jar</bundle>
-  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-runtime-1.0.8.jar</bundle>
-  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-jetty-1.0.8.jar</bundle>
+  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-spi-${pax.web.version}.jar</bundle>
+  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-runtime-${pax.web.version}.jar</bundle>
+  <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/pax-web-jetty-${pax.web.version}.jar</bundle>
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/org.apache.servicemix.bundles.jaxb-impl-${jaxbimpl.bundle.version}.jar</bundle>
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/org.apache.servicemix.bundles.wsdl4j-${wsdl4j.bundle.version}.jar</bundle>
   <bundle>cxf-dosgi-ri-multibundle-distribution-${project.version}-dir/apache-cxf-dosgi-ri-${project.version}/dosgi_bundles/org.apache.servicemix.bundles.xmlsec-${xmlsec.bundle.version}.jar</bundle>

Modified: cxf/dosgi/trunk/distribution/single-bundle/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/single-bundle/pom.xml?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/distribution/single-bundle/pom.xml (original)
+++ cxf/dosgi/trunk/distribution/single-bundle/pom.xml Mon Jan 16 16:02:57 2012
@@ -137,7 +137,7 @@
     <dependency>
       <groupId>org.ops4j.pax.web</groupId>
       <artifactId>pax-web-runtime</artifactId>
-      <version>1.0.8</version>
+      <version>${pax.web.version}</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jetty.aggregate</groupId>
@@ -147,7 +147,7 @@
     <dependency>
       <groupId>org.ops4j.pax.web</groupId>
       <artifactId>pax-web-jetty</artifactId>
-      <version>1.0.8</version>
+      <version>${pax.web.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.servicemix.specs</groupId>

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java Mon Jan 16 16:02:57 2012
@@ -42,6 +42,7 @@ public class Constants {
     public static final String SERVICE_NAME = WSDL_CONFIG_PREFIX + ".service.name";
     public static final String PORT_NAME = WSDL_CONFIG_PREFIX + ".port.name";
     public static final String WSDL_LOCATION = WSDL_CONFIG_PREFIX + ".location";
+    public static final String WSDL_HTTP_SERVICE_CONTEXT = WSDL_CONFIG_PREFIX + ".httpservice.context";
     // Provider prefix
     public static final String PROVIDER_PREFIX = "org.apache.cxf";
     

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java Mon Jan 16 16:02:57 2012
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -36,7 +35,6 @@ import org.apache.cxf.dosgi.dsw.Constant
 import org.apache.cxf.dosgi.dsw.OsgiUtils;
 import org.apache.cxf.dosgi.dsw.qos.IntentMap;
 import org.apache.cxf.endpoint.AbstractEndpointFactory;
-import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.frontend.ClientProxyFactoryBean;
 import org.apache.cxf.frontend.ServerFactoryBean;
@@ -75,17 +73,6 @@ public abstract class AbstractPojoConfig
       }
     }
 
-    Map<String, String> registerPublication(Server server, String[] intents) {
-        Map<String, String> publicationProperties = new HashMap<String, String>();
-        publicationProperties.put(Constants.EXPORTED_CONFIGS, Constants.WS_CONFIG_TYPE);
-
-        String intentsValue = OsgiUtils.formatIntents(intents);
-        if (intentsValue.length() > 0) {
-            publicationProperties.put(Constants.INTENTS, intentsValue);
-        }
-        return publicationProperties;
-    }
-
     String [] applyIntents(BundleContext dswContext,
                            BundleContext callingContext,
                            List<AbstractFeature> features,

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java Mon Jan 16 16:02:57 2012
@@ -36,8 +36,6 @@ import org.apache.cxf.dosgi.dsw.Constant
 import org.apache.cxf.dosgi.dsw.OsgiUtils;
 import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
 import org.apache.cxf.endpoint.Server;
-import org.apache.cxf.endpoint.ServerLifeCycleListener;
-import org.apache.cxf.endpoint.ServerLifeCycleManager;
 import org.apache.cxf.frontend.ClientProxyFactoryBean;
 import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.jaxb.JAXBDataBinding;
@@ -130,18 +128,7 @@ public class HttpServiceConfigurationTyp
             return;
         }
 
-        CXFNonSpringServlet cxf = new CXFNonSpringServlet();
-        HttpService httpService = getHttpService();
-        try {
-            httpService.registerServlet(contextRoot, cxf, new Hashtable<String, String>(), 
-                                       getHttpContext(dswContext, httpService));
-            registerUnexportHook(exportRegistration, contextRoot);
-            
-            LOG.info("Successfully registered CXF DOSGi servlet at " + contextRoot);
-        } catch (Exception e) {
-            throw new ServiceException("CXF DOSGi: problem registering CXF HTTP Servlet", e);
-        }
-        Bus bus = cxf.getBus();
+        Bus bus = registerServletAndGetBus(contextRoot, dswContext, exportRegistration);
         final ServiceReference sref = exportRegistration.getExportedService();
         DataBinding databinding;
         String dataBindingImpl = (String)exportRegistration.getExportedService()
@@ -181,9 +168,6 @@ public class HttpServiceConfigurationTyp
             Thread.currentThread().setContextClassLoader(ServerFactoryBean.class.getClassLoader());
             Server server = factory.create();
             
-            // TODO: does this still make sense ?!? 
-            registerStopHook(bus, httpService, server, contextRoot, Constants.WS_HTTP_SERVICE_CONTEXT);
-            
             endpdDesc = new EndpointDescription(endpointProps);
             exportRegistration.setServer(server);
      
@@ -197,11 +181,21 @@ public class HttpServiceConfigurationTyp
         
      
     }
-
-    protected Map<String, String> registerPublication(Server server, String[] intents, String address) {
-        Map<String, String> publicationProperties = super.registerPublication(server, intents);
-        publicationProperties.put(Constants.WS_ADDRESS_PROPERTY, address);
-        return publicationProperties;
+    
+    protected Bus registerServletAndGetBus(String contextRoot, BundleContext dswContext,
+    		ExportRegistrationImpl exportRegistration) {
+    	CXFNonSpringServlet cxf = new CXFNonSpringServlet();
+        HttpService httpService = getHttpService();
+        try {
+            httpService.registerServlet(contextRoot, cxf, new Hashtable<String, String>(), 
+                                       getHttpContext(dswContext, httpService));
+            registerUnexportHook(exportRegistration, contextRoot);
+            
+            LOG.info("Successfully registered CXF DOSGi servlet at " + contextRoot);
+        } catch (Exception e) {
+            throw new ServiceException("CXF DOSGi: problem registering CXF HTTP Servlet", e);
+        }
+        return cxf.getBus();
     }
 
     protected String constructAddress(BundleContext ctx, String contextRoot) {
@@ -238,10 +232,13 @@ public class HttpServiceConfigurationTyp
     }
 
     protected String getServletContextRoot(Map sd, Class<?> iClass) {
-        String context = OsgiUtils.getProperty(sd, Constants.WS_HTTP_SERVICE_CONTEXT);
+    	String context = OsgiUtils.getProperty(sd, Constants.WS_HTTP_SERVICE_CONTEXT);
         if (context == null) {
             context = OsgiUtils.getProperty(sd, Constants.WS_HTTP_SERVICE_CONTEXT_OLD);
         }
+        if (context == null) {
+            context = OsgiUtils.getProperty(sd, Constants.WSDL_HTTP_SERVICE_CONTEXT);
+        }
 
         if (context == null) {
             context = "/" + iClass.getName().replace('.', '/');
@@ -250,29 +247,6 @@ public class HttpServiceConfigurationTyp
         return context;
     }
 
-    protected void registerStopHook(Bus bus, final HttpService httpService, Server theServer,
-                                    final String contextRoot, final String propertyName) {
-        if (bus != null) {
-            theServer.getEndpoint().put(propertyName, contextRoot);
-            ServerLifeCycleListener stopHook = new ServerLifeCycleListener() {
-                public void stopServer(Server s) {
-                    Object contextProperty = s.getEndpoint().get(propertyName);
-                    if (contextProperty != null && contextProperty.equals(contextRoot)) {
-                        httpService.unregister(contextRoot);
-                    }
-                }
-
-                public void startServer(Server s) {
-                }
-            };
-            ServerLifeCycleManager mgr = bus.getExtension(ServerLifeCycleManager.class);
-            if (mgr != null) {
-                mgr.registerListener(stopHook);
-            }
-        }
-    }
-
-
     protected HttpContext getHttpContext(BundleContext bundleContext, HttpService httpService) {
 
         HttpContext httpContext = httpService.createDefaultHttpContext();

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java Mon Jan 16 16:02:57 2012
@@ -18,11 +18,8 @@
  */
 package org.apache.cxf.dosgi.dsw.handlers;
 
-import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.logging.Logger;
 
 import org.apache.cxf.Bus;
@@ -34,22 +31,14 @@ import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.apache.cxf.jaxrs.model.UserResource;
-import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpContext;
-import org.osgi.service.http.HttpService;
 import org.osgi.service.remoteserviceadmin.EndpointDescription;
 
 public class JaxRSHttpServiceConfigurationTypeHandler extends HttpServiceConfigurationTypeHandler {
     private static final Logger LOG = LogUtils.getL7dLogger(JaxRSHttpServiceConfigurationTypeHandler.class);
 
-    Set<ServiceReference> httpServiceReferences = new CopyOnWriteArraySet<ServiceReference>();
-
     protected JaxRSHttpServiceConfigurationTypeHandler(BundleContext dswBC,
-
-    Map<String, Object> handlerProps) {
+                                                       Map<String, Object> handlerProps) {
         super(dswBC, handlerProps);
     }
 
@@ -63,17 +52,7 @@ public class JaxRSHttpServiceConfigurati
             return;
         }
 
-        CXFNonSpringServlet cxf = new CXFNonSpringServlet();
-        HttpService httpService = getHttpService();
-        try {
-            HttpContext httpContext = getHttpContext(dswContext, httpService);
-            httpService.registerServlet(contextRoot, cxf, new Hashtable<String, String>(), httpContext);
-            registerUnexportHook(exportRegistration, contextRoot);
-            LOG.info("Successfully registered CXF DOSGi servlet at " + contextRoot);
-        } catch (Exception e) {
-            throw new ServiceException("CXF DOSGi: problem registering CXF HTTP Servlet", e);
-        }
-        Bus bus = cxf.getBus();
+        Bus bus = registerServletAndGetBus(contextRoot, dswContext, exportRegistration);
 
         JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
         factory.setBus(bus);
@@ -95,8 +74,6 @@ public class JaxRSHttpServiceConfigurati
 
         String address = constructAddress(dswContext, contextRoot);
 
-        
-
         ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
         try {
             String[] intents = new String[] {
@@ -112,7 +89,6 @@ public class JaxRSHttpServiceConfigurati
             
             Thread.currentThread().setContextClassLoader(JAXRSServerFactoryBean.class.getClassLoader());
             Server server = factory.create();
-            registerStopHook(bus, httpService, server, contextRoot, Constants.RS_HTTP_SERVICE_CONTEXT);
 
             endpdDesc = new EndpointDescription(endpointProps);
             exportRegistration.setServer(server);

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java Mon Jan 16 16:02:57 2012
@@ -26,6 +26,7 @@ import java.util.logging.Logger;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Service;
 
+import org.apache.cxf.Bus;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.PackageUtils;
 import org.apache.cxf.databinding.DataBinding;
@@ -40,7 +41,7 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.remoteserviceadmin.EndpointDescription;
 
-public class WsdlConfigurationTypeHandler extends AbstractPojoConfigurationTypeHandler {
+public class WsdlConfigurationTypeHandler extends HttpServiceConfigurationTypeHandler {
     private static final String CONFIGURATION_TYPE = "wsdl";
     private static final Logger LOG = LogUtils.getL7dLogger(WsdlConfigurationTypeHandler.class);
     
@@ -144,19 +145,28 @@ public class WsdlConfigurationTypeHandle
     	}
         
     	String address = getPojoAddress(sd, iClass);
+    	String contextRoot = null;
         if (address == null) {
-            LOG.warning("Remote address is unavailable");
+        	contextRoot = getServletContextRoot(sd, iClass);
+            if (contextRoot == null) {
+                LOG.warning("Remote address is unavailable");
+            }
             exportRegistration.setException(new Throwable("Remote address is unavailable"));
             return;
         }
 
         LOG.info("Creating a " + iClass.getName() + " endpoint from CXF PublishHook, address is " + address);
 
+        Bus bus = null;
+        if (contextRoot != null) {
+        	bus = registerServletAndGetBus(contextRoot, dswContext, exportRegistration);
+        }
+        
         DataBinding databinding = new JAXBDataBinding();
         JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
 
         factory.setServiceClass(iClass);
-        factory.setAddress(address);
+        factory.setAddress(address != null ? address : "/");
         factory.getServiceFactory().setDataBinding(databinding);
         factory.setServiceBean(serviceBean);
 
@@ -169,6 +179,9 @@ public class WsdlConfigurationTypeHandle
         }
         
         factory.setWsdlURL(wsdlURL.toString());
+        if (bus != null) {
+        	factory.setBus(bus);
+        }
         
         ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
         try {

Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java Mon Jan 16 16:02:57 2012
@@ -120,10 +120,7 @@ public class ExportRegistrationImpl impl
     }
     
     public EndpointDescription getEndpointDescription() {
-        if (!closed)
-            return endpointDescription;
-        else
-            return null;
+        return endpointDescription;
     }
 
     public Throwable getException() {
@@ -183,10 +180,12 @@ public class ExportRegistrationImpl impl
     }
 
     public ExportReference getExportReference() {
-        if(exportReference==null){
-            exportReference = new ExportReferenceImpl(this);
-        }
-        return exportReference;
+    	synchronized (this) {
+	        if(exportReference==null){
+	            exportReference = new ExportReferenceImpl(this);
+	        }
+	        return exportReference;
+    	}
     }
 
     protected EndpointDescription getEndpointDescriptionAlways() {

Modified: cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/TopologyManager.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/TopologyManager.java?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/TopologyManager.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-topology-manager/src/main/java/org/apache/cxf/dosgi/topologymanager/TopologyManager.java Mon Jan 16 16:02:57 2012
@@ -366,7 +366,9 @@ public class TopologyManager {
             for (ExportRegistration exReg : exportRegistrations) {
 
                 // FIXME!!!!!!!!!!!!! There needs to be a better way ?!?!?!
-                Map props = exReg.getExportReference().getExportedEndpoint().getProperties();
+            	ExportReference ref = exReg.getExportReference(); 
+            	EndpointDescription endpoint = ref.getExportedEndpoint(); 
+                Map props = endpoint.getProperties();
                 Dictionary d = new Hashtable(props);
 
                 for (Filter filter : filters) {

Modified: cxf/dosgi/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/parent/pom.xml?rev=1232046&r1=1232045&r2=1232046&view=diff
==============================================================================
--- cxf/dosgi/trunk/parent/pom.xml (original)
+++ cxf/dosgi/trunk/parent/pom.xml Mon Jan 16 16:02:57 2012
@@ -33,7 +33,7 @@
         <remote.service.admin.interfaces.version>1.0.0</remote.service.admin.interfaces.version>
 
         <servicemix.specs.version>1.9.0</servicemix.specs.version>
-
+        <pax.web.version>1.0.3</pax.web.version>
         <servlet.version>3.0</servlet.version>
         <log4j.version>1.2.15</log4j.version>
         <jetty.version>7.4.2.v20110526</jetty.version>