|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.deepamehta.core.impl.PluginImpl
public class PluginImpl
Field Summary | |
---|---|
private BundleContext |
bundleContext
|
private List<ServiceTracker> |
coreServiceTrackers
|
private WebResources |
directoryResource
|
private EmbeddedService |
dms
|
private EventAdmin |
eventService
|
private Logger |
logger
|
private static String |
PLUGIN_ACTIVATED
|
private static String |
PLUGIN_CONFIG_FILE
|
private static String |
PLUGIN_DEFAULT_PACKAGE
|
private Bundle |
pluginBundle
|
private String |
pluginClass
|
private PluginContext |
pluginContext
|
private List<String> |
pluginDependencies
|
private PluginInfo |
pluginInfo
|
private String |
pluginName
|
private String |
pluginPackage
|
private Properties |
pluginProperties
|
private Map<String,Object> |
pluginServices
|
private List<ServiceTracker> |
pluginServiceTrackers
|
private Topic |
pluginTopic
|
private String |
pluginUri
|
private ServiceRegistration |
registration
|
private RestResource |
restResource
|
private WebPublishingService |
webPublishingService
|
private WebResources |
webResources
|
Constructor Summary | |
---|---|
PluginImpl(PluginContext pluginContext)
|
Method Summary | |
---|---|
private void |
addService(Object service,
String serviceInterface)
|
private void |
checkRequirementsForActivation()
Checks if this plugin's requirements are met, and if so, activates this plugin. |
private void |
closeCoreServiceTrackers()
|
private void |
closePluginServiceTrackers()
|
private void |
closeServiceTrackers(List<ServiceTracker> serviceTrackers)
|
private String[] |
consumedServiceInterfaces()
|
private void |
createCoreServiceTrackers()
|
private void |
createPluginServiceTrackers()
|
private Topic |
createPluginTopic()
Creates a Plugin topic in the DB. |
private boolean |
createPluginTopicIfNotExists()
|
private ServiceTracker |
createServiceTracker(Class serviceInterface)
|
private ServiceTracker |
createServiceTracker(String serviceInterface)
|
private void |
deliverEvent(DeepaMehtaEvent event,
Object... params)
Checks weather this plugin is a listener for the given event, and if so, delivers the event to this plugin. |
private boolean |
dependenciesAvailable()
|
private String |
entryPathToClassName(String entryPath)
|
private Topic |
fetchPluginTopic()
|
(package private) String |
getConfigProperty(String key)
Returns a plugin configuration property (as read from file "plugin.properties") or null if no such property exists. |
(package private) String |
getConfigProperty(String key,
String defaultValue)
|
(package private) PluginContext |
getContext()
|
private List<DeepaMehtaEvent> |
getEvents()
Returns the events this plugin is listening to. |
(package private) PluginInfo |
getInfo()
|
(package private) String |
getMigrationClassName(int migrationNr)
Returns the migration class name for the given migration number. |
private Enumeration<String> |
getPluginPaths(String relativePath)
|
(package private) Topic |
getPluginTopic()
|
private List<Class<?>> |
getProviderClasses()
|
InputStream |
getResourceAsStream(String name)
Uses the plugin bundle's class loader to find a resource. |
private List<Object> |
getRootResources()
|
String |
getUri()
|
private String |
getWebResourcesNamespace()
|
void |
handleEvent(Event event)
|
private boolean |
hasDependency(String pluginUri)
|
(package private) void |
initializePlugin()
|
(package private) void |
installPluginInDB()
Installs the plugin in the database. |
private void |
introduceAssociationTypesToPlugin()
|
private void |
introduceTopicTypesToPlugin()
|
private boolean |
isGenericPlugin()
|
private boolean |
isListenerInterface(Class interfaze)
Returns true if the specified interface is an event listener interface. |
private boolean |
isPluginActivated(String pluginUri)
|
(package private) Class |
loadClass(String className)
Uses the plugin bundle's class loader to load a class by name. |
private void |
openCoreServiceTrackers()
|
private void |
openPluginServiceTrackers()
|
private void |
openServiceTrackers(List<ServiceTracker> serviceTrackers)
|
private List<String> |
pluginDependencies()
|
private boolean |
pluginServicesAvailable()
|
(package private) void |
postPluginActivatedEvent()
|
private String |
providedServiceInterface()
|
void |
publishDirectory(String directoryPath,
String uriNamespace,
SecurityHandler securityHandler)
|
private Properties |
readConfigFile()
|
private void |
registerEventListener()
|
(package private) void |
registerListeners()
|
(package private) void |
registerPluginService()
Registers this plugin's OSGi service at the OSGi framework. |
private void |
registerRestResources()
Registers this plugin's REST resources at the Web Publishing service. |
private void |
registerWebResources()
Registers this plugin's web resources at the Web Publishing service. |
private void |
removeService(Object service,
String serviceInterface)
|
private List<String> |
scanPackage(String relativePath)
|
private void |
setCoreService(EmbeddedService dms)
|
(package private) void |
setMigrationNr(int migrationNr)
|
void |
start()
|
void |
stop()
|
String |
toString()
|
private void |
unregisterDirectoryResource()
|
(package private) void |
unregisterListeners()
|
private void |
unregisterRestResources()
|
private void |
unregisterWebResources()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final String PLUGIN_DEFAULT_PACKAGE
private static final String PLUGIN_CONFIG_FILE
private static final String PLUGIN_ACTIVATED
private PluginContext pluginContext
private BundleContext bundleContext
private Bundle pluginBundle
private String pluginUri
private String pluginName
private String pluginClass
private Properties pluginProperties
private String pluginPackage
private PluginInfo pluginInfo
private List<String> pluginDependencies
private Topic pluginTopic
private EmbeddedService dms
private WebPublishingService webPublishingService
private EventAdmin eventService
private Map<String,Object> pluginServices
private ServiceRegistration registration
private WebResources webResources
private WebResources directoryResource
private RestResource restResource
private List<ServiceTracker> coreServiceTrackers
private List<ServiceTracker> pluginServiceTrackers
private Logger logger
Constructor Detail |
---|
public PluginImpl(PluginContext pluginContext)
Method Detail |
---|
public void start()
public void stop()
public void publishDirectory(String directoryPath, String uriNamespace, SecurityHandler securityHandler)
public String getUri()
public InputStream getResourceAsStream(String name) throws IOException
getResourceAsStream
in interface Plugin
IOException
public String toString()
toString
in class Object
PluginInfo getInfo()
PluginContext getContext()
Topic getPluginTopic()
String getConfigProperty(String key)
null
if no such property exists.
String getConfigProperty(String key, String defaultValue)
String getMigrationClassName(int migrationNr)
null
if the migration package is unknown.
This is the case if the plugin bundle contains no Plugin subclass and the "pluginPackage" config
property is not set.void setMigrationNr(int migrationNr)
Class loadClass(String className)
null
if the class is not found.private Properties readConfigFile()
private void createCoreServiceTrackers()
private void createPluginServiceTrackers()
private String[] consumedServiceInterfaces()
private boolean pluginServicesAvailable()
private boolean isGenericPlugin()
private ServiceTracker createServiceTracker(Class serviceInterface)
private ServiceTracker createServiceTracker(String serviceInterface)
private void openCoreServiceTrackers()
private void closeCoreServiceTrackers()
private void openPluginServiceTrackers()
private void closePluginServiceTrackers()
private void openServiceTrackers(List<ServiceTracker> serviceTrackers)
private void closeServiceTrackers(List<ServiceTracker> serviceTrackers)
private void addService(Object service, String serviceInterface)
private void removeService(Object service, String serviceInterface)
private void setCoreService(EmbeddedService dms)
private void checkRequirementsForActivation()
void installPluginInDB()
CoreEvent.INTRODUCE_TOPIC_TYPE
and
CoreEvent.INTRODUCE_ASSOCIATION_TYPE
events)
private boolean createPluginTopicIfNotExists()
private Topic createPluginTopic()
A Plugin topic represents an installed plugin and is used to track its version.
private Topic fetchPluginTopic()
private void introduceTopicTypesToPlugin()
private void introduceAssociationTypesToPlugin()
void initializePlugin()
void registerListeners()
void unregisterListeners()
private List<DeepaMehtaEvent> getEvents()
private void deliverEvent(DeepaMehtaEvent event, Object... params)
Called internally to deliver the INTRODUCE_TOPIC_TYPE and INTRODUCE_ASSOCIATION_TYPE events.
private boolean isListenerInterface(Class interfaze)
EventListener
.
void registerPluginService()
private String providedServiceInterface()
private void registerWebResources()
private void unregisterWebResources()
private String getWebResourcesNamespace()
private void unregisterDirectoryResource()
private void registerRestResources()
private void unregisterRestResources()
private List<Object> getRootResources()
private List<Class<?>> getProviderClasses() throws IOException
IOException
private List<String> pluginDependencies()
private boolean hasDependency(String pluginUri)
private boolean dependenciesAvailable()
private boolean isPluginActivated(String pluginUri)
private void registerEventListener()
void postPluginActivatedEvent()
public void handleEvent(Event event)
handleEvent
in interface EventHandler
private List<String> scanPackage(String relativePath)
private Enumeration<String> getPluginPaths(String relativePath)
private String entryPathToClassName(String entryPath)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |