You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/02/12 22:30:35 UTC

svn commit: r743890 - /servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java

Author: gnodet
Date: Thu Feb 12 21:30:35 2009
New Revision: 743890

URL: http://svn.apache.org/viewvc?rev=743890&view=rev
Log:
SMX4NMR-82: Once a component has been shut down, restarting it should call Lifecycle#init()

Modified:
    servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java

Modified: servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java?rev=743890&r1=743889&r2=743890&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java (original)
+++ servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/ComponentImpl.java Thu Feb 12 21:30:35 2009
@@ -114,10 +114,15 @@
 
     public void start(boolean saveState) throws JBIException {
         LOGGER.info("Starting component " + getName());
-        component.getLifeCycle().start();
-        state = State.Started;
-        if (saveState) {
-            saveState();
+        if (state != State.Started) {
+            if (state == State.Shutdown) {
+                component.getLifeCycle().init(null);
+            }
+            component.getLifeCycle().start();
+            state = State.Started;
+            if (saveState) {
+                saveState();
+            }
         }
     }
 
@@ -215,6 +220,7 @@
     protected class ComponentWrapper implements javax.jbi.component.Component, ComponentLifeCycle {
         private javax.jbi.component.Component component;
         private ComponentLifeCycle lifeCycle;
+        private ComponentContext context;
 
         public ComponentWrapper(javax.jbi.component.Component component) {
             this.component = component;
@@ -252,6 +258,12 @@
         }
 
         public void init(ComponentContext context) throws JBIException {
+            if (this.context == null) {
+                this.context = context;
+            }
+            if (context == null) {
+                context = this.context;
+            }
             ClassLoader cl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(component.getClass().getClassLoader());