You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2013/10/10 18:04:54 UTC

svn commit: r1531037 - /cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java

Author: dkulp
Date: Thu Oct 10 16:04:54 2013
New Revision: 1531037

URL: http://svn.apache.org/r1531037
Log:
Merged revisions 1531027 via  git cherry-pick from
https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes

........
  r1531027 | dkulp | 2013-10-10 11:35:09 -0400 (Thu, 10 Oct 2013) | 11 lines

  Merged revisions 1531026 via  git cherry-pick from
  https://svn.apache.org/repos/asf/cxf/trunk

  ........
    r1531026 | dkulp | 2013-10-10 11:31:28 -0400 (Thu, 10 Oct 2013) | 3 lines

    [CXF-5329] Make sure the wsn bus gets registered as a service
    Patch from Sebastian Ruhl applied

  ........

........

Modified:
    cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java

Modified: cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java?rev=1531037&r1=1531036&r2=1531037&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java (original)
+++ cxf/branches/2.6.x-fixes/services/wsn/wsn-core/src/main/java/org/apache/cxf/wsn/services/OSGiJaxwsEndpointManager.java Thu Oct 10 16:04:54 2013
@@ -19,6 +19,8 @@
 
 package org.apache.cxf.wsn.services;
 
+import java.util.Dictionary;
+import java.util.Properties;
 import javax.management.MBeanServer;
 import javax.xml.ws.Endpoint;
 
@@ -26,9 +28,16 @@ import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.bus.blueprint.BlueprintBus;
 import org.apache.cxf.wsn.EndpointRegistrationException;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.Version;
 import org.osgi.service.blueprint.container.BlueprintContainer;
 
+import static org.apache.cxf.bus.osgi.OSGIBusListener.CONTEXT_NAME_PROPERTY;
+import static org.apache.cxf.bus.osgi.OSGIBusListener.CONTEXT_SYMBOLIC_NAME_PROPERTY;
+import static org.apache.cxf.bus.osgi.OSGIBusListener.CONTEXT_VERSION_PROPERTY;
+
 /**
  * 
  */
@@ -99,7 +108,19 @@ public class OSGiJaxwsEndpointManager ex
         bp.setBlueprintContainer(container);
         bp.setId("WS-Notification");
         bp.initialize();
+        if (null != bundleContext) {
+            Properties props = new Properties();
+            props.put(CONTEXT_SYMBOLIC_NAME_PROPERTY, bundleContext.getBundle().getSymbolicName());
+            props.put(CONTEXT_VERSION_PROPERTY, getBundleVersion(bundleContext.getBundle()));
+            props.put(CONTEXT_NAME_PROPERTY, bp.getId());
+            bundleContext.registerService(Bus.class.getName(), bp, props);
+        }
         cxfBus = bp;
     }
+    private Version getBundleVersion(Bundle bundle) {
+        Dictionary<?, ?> headers = bundle.getHeaders();
+        String version = (String) headers.get(Constants.BUNDLE_VERSION);
+        return (version != null) ? Version.parseVersion(version) : Version.emptyVersion;
+    }
     
 }