Author: gertv
Date: Fri Oct 19 13:04:26 2012
New Revision: 1400079

URL: http://svn.apache.org/viewvc?rev=1400079&view=rev
Log:
SMX4NMR-302: Make sure the nmr-osgi bundle can be stopped after the 
nmr-management bundle

Modified:
    
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/ServiceMix.java
    
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml

Modified: 
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/ServiceMix.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/ServiceMix.java?rev=1400079&r1=1400078&r2=1400079&view=diff
==============================================================================
--- 
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/ServiceMix.java
 (original)
+++ 
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/ServiceMix.java
 Fri Oct 19 13:04:26 2012
@@ -194,10 +194,14 @@ public class ServiceMix implements NMR {
      *
      * @param managementStrategy the management strategy
      */
-    public void setManagementStrategy(ManagementStrategy managementStrategy) {
+    public void bindManagementStrategy(ManagementStrategy managementStrategy) {
         this.managementStrategy = managementStrategy;
     }
 
+    public void unbindManagementStrategy(ManagementStrategy ms) {
+        managementStrategy = null;
+    }
+
     /**
      * Access the NMR id
      *
@@ -227,7 +231,10 @@ public class ServiceMix implements NMR {
 
     private void fireEvent(EventObject event) {
         try {
-            getManagementStrategy().notify(event);
+            ManagementStrategy ms = getManagementStrategy();
+            if (ms != null) {
+                ms.notify(event);
+            }
         } catch (Exception e) {
             // ignore
         }

Modified: 
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
URL: 
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml?rev=1400079&r1=1400078&r2=1400079&view=diff
==============================================================================
--- 
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
 (original)
+++ 
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
 Fri Oct 19 13:04:26 2012
@@ -35,13 +35,14 @@
         <property name="flowRegistry" ref="flowRegistry"/>
         <property name="wireRegistry" ref="wireRegistry"/>
         <property name="executorFactory" ref="executorFactory"/>
-        <property name="managementStrategy" ref="managementStrategy"/>
         <property name="id" value="${nmrId}"/>
     </bean>
     <service ref="servicemix" interface="org.apache.servicemix.nmr.api.NMR"/>
 
     <!-- Retrieve ManagementStrategy from OSGi service registry -->
-    <reference id="managementStrategy" 
interface="org.fusesource.commons.management.ManagementStrategy"/>
+    <reference id="managementStrategy" 
interface="org.fusesource.commons.management.ManagementStrategy">
+        <reference-listener ref="servicemix" 
bind-method="bindManagementStrategy" unbind-method="unbindManagementStrategy" />
+    </reference>
 
     <!-- Flow registry and service tracker -->
     <bean id="flowRegistry" 
class="org.apache.servicemix.nmr.core.FlowRegistryImpl">


Reply via email to