You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by js...@apache.org on 2006/10/03 14:09:14 UTC

svn commit: r452447 - /incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java

Author: jstrachan
Date: Tue Oct  3 05:09:13 2006
New Revision: 452447

URL: http://svn.apache.org/viewvc?view=rev&rev=452447
Log:
lazily create a serviceUnit on demand to make it easier for derived components to add dynamic endpoints

Modified:
    incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java

Modified: incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java?view=diff&rev=452447&r1=452446&r2=452447
==============================================================================
--- incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java (original)
+++ incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/DefaultComponent.java Tue Oct  3 05:09:13 2006
@@ -221,11 +221,15 @@
     }
 
     /**
-     * Returns the service unit if applicable
+     * Returns the service unit, lazily creating one on demand
      *
      * @return the service unit if one is being used.
      */
     public ServiceUnit getServiceUnit() {
+        if (serviceUnit == null) {
+            serviceUnit = new XBeanServiceUnit();
+            serviceUnit.setComponent(this);
+        }
         return serviceUnit;
     }
 
@@ -244,14 +248,13 @@
         super.doInit();
         Endpoint[] endpoints = getEndpoints();
         if (endpoints != null && endpoints.length > 0) {
-            serviceUnit = new XBeanServiceUnit();
-            serviceUnit.setComponent(this);
+            ServiceUnit su = getServiceUnit();
             for (int i = 0; i < endpoints.length; i++) {
-                endpoints[i].setServiceUnit(serviceUnit);
+                endpoints[i].setServiceUnit(su);
                 endpoints[i].validate();
-                serviceUnit.addEndpoint(endpoints[i]);
+                su.addEndpoint(endpoints[i]);
             }
-            getRegistry().registerServiceUnit(serviceUnit);
+            getRegistry().registerServiceUnit(su);
         }
     }