You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 3
Next »
How to extend Tuscany Java SCA?
The ExtensionPointRegistry
package org.apache.tuscany.core;
/**
* The registry for the Tuscany core extension points.
*
* @version $Rev: 529327 $ $Date: 2007-04-16 10:10:43 -0700 (Mon, 16 Apr 2007) $
*/
public interface ExtensionPointRegistry {
/**
* Add an extension point to the registry
* @param <T>
* @param extensionPointType The interface of the extension point
* @param extensionPoint The instance of the extension point
*/
<T> void addExtensionPoint(Class<T> extensionPointType, T extensionPoint);
/**
* Get the extension point by the interface
* @param <T>
* @param extensionPointType
* @return
*/
<T> T getExtensionPoint(Class<T> extensionPointType);
/**
* Remove an extension point
* @param extensionPoint
*/
void removeExtensionPoint(Class extensionPoint);
}
The ModuleActivator
package org.apache.tuscany.core;
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: 529327 $ $Date: 2007-04-16 10:10:43 -0700 (Mon, 16 Apr 2007) $
*/
public interface ModuleActivator {
/**
* 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);
/**
* 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);
}