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