You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/09 21:52:20 UTC

svn commit: r526897 - in /incubator/tuscany/java/sca/modules: core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ core/src/main/java/org/apache/tuscany/core/bootstrap/ core/src/main/java/org/apache/tuscany/core/runtime/ host-embedded/src/test/java...

Author: rfeng
Date: Mon Apr  9 12:52:15 2007
New Revision: 526897

URL: http://svn.apache.org/viewvc?view=rev&rev=526897
Log:
Rename ExtensionActivator to ModuleActivator
Add getExtensionPoints to ModuleActivator

Added:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ModuleActivator.java
      - copied, changed from r526848, incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ExtensionActivator.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDModuleActivator.java
      - copied, changed from r526848, incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ModuleActivator
      - copied, changed from r526848, incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ExtensionActivator
Removed:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ExtensionActivator.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ExtensionActivator
Modified:
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/ExtensionPointRegistryImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java

Copied: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ModuleActivator.java (from r526848, incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ExtensionActivator.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ModuleActivator.java?view=diff&rev=526897&p1=incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ExtensionActivator.java&r1=526848&p2=incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ModuleActivator.java&r2=526897
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ExtensionActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/bootstrap/ModuleActivator.java Mon Apr  9 12:52:15 2007
@@ -19,17 +19,43 @@
 
 package org.apache.tuscany.spi.bootstrap;
 
+import java.util.Map;
 
 /**
+ * ModuleActivator represents a module that plugs into the Tuscany system. Each module should
+ * provide an implementation of this interface and registry the implementation class by defining 
+ * a file named as "META-INF/services/org.apache.tuscany.spi.bootstrp.ModuleActivator". The
+ * content of the file is the class name of the implementation. The implementation class must
+ * have a no-arg constructor. The same instance will be used to invoke all the methods during
+ * different phases of the module activation.
+ * 
  * @version $Rev$ $Date$
  */
-public interface ExtensionActivator {
+public interface ModuleActivator {
     /**
-     * @param registry
+     * Get a map of the extension points defined by this module. The key is the
+     * java interface to represent the extension point and the the value is the
+     * instance of the implementation of the interface.
+     * 
+     * @return All the extension points defined by this module
+     */
+    Map<Class, Object> getExtensionPoints();
+
+    /**
+     * This method is invoked when the module is started by the Tuscany system.
+     * It can be used by this module to registr extensions against extension
+     * points.
+     * 
+     * @param registry The extension point registry
      */
     void start(ExtensionPointRegistry registry);
+
     /**
-     * @param registry
+     * This method is invoked when the module is stopped by the Tuscany system.
+     * It can be used by this module to unregister extensions against the
+     * extension points.
+     * 
+     * @param registry The extension point registry
      */
     void stop(ExtensionPointRegistry registry);
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/ExtensionPointRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/ExtensionPointRegistryImpl.java?view=diff&rev=526897&r1=526896&r2=526897
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/ExtensionPointRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/ExtensionPointRegistryImpl.java Mon Apr  9 12:52:15 2007
@@ -19,9 +19,7 @@
 
 package org.apache.tuscany.core.bootstrap;
 
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.tuscany.spi.bootstrap.ExtensionPointRegistry;

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=526897&r1=526896&r2=526897
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Mon Apr  9 12:52:15 2007
@@ -33,6 +33,7 @@
 import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.xml.stream.XMLInputFactory;
@@ -57,7 +58,7 @@
 import org.apache.tuscany.interfacedef.java.JavaInterface;
 import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
 import org.apache.tuscany.services.spi.contribution.ContributionService;
-import org.apache.tuscany.spi.bootstrap.ExtensionActivator;
+import org.apache.tuscany.spi.bootstrap.ModuleActivator;
 import org.apache.tuscany.spi.bootstrap.ExtensionPointRegistry;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
@@ -127,7 +128,7 @@
     protected ContributionService contributionService;
 
     protected ScopeRegistry scopeRegistry;
-    protected Collection<ExtensionActivator> activators;
+    protected Collection<ModuleActivator> activators;
 
     protected AbstractRuntime(Class<I> runtimeInfoType) {
         this(runtimeInfoType, new NullMonitorFactory());
@@ -197,6 +198,7 @@
         this.managementService = managementService;
     }
 
+    @SuppressWarnings("unchecked")
     public void initialize(ExtensionPointRegistry extensionRegistry, ContributionService contributionService)
         throws InitializationException {
         this.contributionService = contributionService;
@@ -213,8 +215,14 @@
 
         this.scopeRegistry = bootstrapper.getScopeRegistry();
 
-        activators = getInstances(getHostClassLoader(), ExtensionActivator.class);
-        for (ExtensionActivator activator : activators) {
+        activators = getInstances(getHostClassLoader(), ModuleActivator.class);
+        for (ModuleActivator activator : activators) {
+            Map<Class, Object> extensionPoints = activator.getExtensionPoints();
+            if (extensionPoints != null) {
+                for (Map.Entry<Class, Object> e : extensionPoints.entrySet()) {
+                    extensionRegistry.addExtensionPoint(e.getKey(), e.getValue());
+                }
+            }
             activator.start(extensionRegistry);
         }
 

Copied: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDModuleActivator.java (from r526848, incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDModuleActivator.java?view=diff&rev=526897&p1=incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java&r1=526848&p2=incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDModuleActivator.java&r2=526897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDModuleActivator.java Mon Apr  9 12:52:15 2007
@@ -19,15 +19,18 @@
 
 package org.apache.tuscany.container.crud;
 
+import java.util.Map;
+
 import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessorRegistry;
-import org.apache.tuscany.spi.bootstrap.ExtensionActivator;
+import org.apache.tuscany.spi.bootstrap.ModuleActivator;
 import org.apache.tuscany.spi.bootstrap.ExtensionPointRegistry;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 
 /**
  * @version $Rev$ $Date$
  */
-public class CRUDExtensionActivator implements ExtensionActivator {
+public class CRUDModuleActivator implements ModuleActivator {
+
     private CRUDImplementationLoader implementationLoader;
     private CRUDComponentBuilder builder;
 
@@ -43,6 +46,10 @@
         builder.init();
     }
 
+    public Map<Class, Object> getExtensionPoints() {
+        return null;
+    }
+    
     public void stop(ExtensionPointRegistry registry) {
     }
 }

Copied: incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ModuleActivator (from r526848, incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ExtensionActivator)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ModuleActivator?view=diff&rev=526897&p1=incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ExtensionActivator&r1=526848&p2=incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ModuleActivator&r2=526897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ExtensionActivator (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/resources/META-INF/services/org.apache.tuscany.spi.bootstrap.ModuleActivator Mon Apr  9 12:52:15 2007
@@ -1,2 +1,2 @@
-# Implementation class for the ExtensionActivator
-org.apache.tuscany.container.crud.CRUDExtensionActivator
+# Implementation class for the ModuleActivator
+org.apache.tuscany.container.crud.CRUDModuleActivator



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org