From 1b867d151c62834ce3cab0cfcc46e8ff3663d5f9 Mon Sep 17 00:00:00 2001 From: Decebal Suiu Date: Wed, 20 Feb 2013 11:35:54 +0200 Subject: [PATCH] Update README.md --- README.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6452569..81d9fcc 100644 --- a/README.md +++ b/README.md @@ -89,14 +89,6 @@ In this case the `classes/META-INF/MANIFEST.MF` file looks like: In above manifest I described a plugin with id `welcome-plugin`, with class `ro.fortsoft.pf4j.demo.welcome.WelcomePlugin`, with version `0.0.1` and with dependencies to plugins `x, y, z`. -Also you can use any PluginDescriptorFinder (for example **PropertiesPluginDescriptorFinder**) in DefaultPluginManager (using setPluginDescriptorFinder() method). - - plugin.class=ro.fortsoft.pf4j.demo.welcome.WelcomePlugin - plugin.dependencies=x, y, z - plugin.id=welcome-plugin - plugin.provider=Decebal Suiu - plugin.version=0.0.1 - You can define an extension point in your application using **ExtensionPoint** interface marker. public interface Greeting extends ExtensionPoint { @@ -139,6 +131,23 @@ The output is: >>> Welcome >>> Hello +You can inject your custom component (for example PluginDescriptorFinder, ExtensionFinder) in DefaultPluginManager just override createXXX methods (factory method pattern). + +Example: + + protected PluginDescriptorFinder createPluginDescriptorFinder() { + return new PropertiesPluginDescriptorFinder(); + } + +and in plugin respository you must have a plugin.properties file with the below content: + + plugin.class=ro.fortsoft.pf4j.demo.welcome.WelcomePlugin + plugin.dependencies=x, y, z + plugin.id=welcome-plugin + plugin.provider=Decebal Suiu + plugin.version=0.0.1 + + For more information please see the demo sources. Demo