-
-
Notifications
You must be signed in to change notification settings - Fork 545
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What you want to see in next version(s)? #182
Comments
I'd like to see a maven build plugin so that there isn't so much config that needs to be done to get it to build a zip file just right. |
@tylerhawkes |
Hi @decebals, I am considering PF4j as a plugin framework in one of our projects, requirements of which include the possibility to "hot deploy" new plugins on the fly, without the need for an application to be restarted. Does current version support such a scenario? |
@seziCZ |
I'd like to see the annotation processor be able to treat annotations that have Extension on them as if they were an Extension annotation. I have an annotation that I use everywhere and I always have to include Extension as well to get extension discovery. It looks like getSupportedAnnotationTypes() needs some more logic to support this, but I don't know of a good way to do it without the annotation processor being its own module so it can have its own dependencies. |
Can you add more details (examples) because I don't understand. |
My first thought was to ask for an ability to use the plugins as Spring beans and be able to use @Autowired inside a plugin class. |
@decebals I have an annotation type that helps define how Jackson should deserialize yaml into an object structure. It is required on every class that implements one of the interfaces that extends ExtensionPoint. I don't have pf4j instantiate objects because users can dynamically configure classes by providing several yaml files that match object structure at run time. I'd like the interface to look like
then when I use it on a class like so
I'd like the class ConcreteClass to be treated as if it had the If you take a look at the project I mentioned earlier, the actual type is |
@tylerhawkes Thanks for your explanation. I think that I understand what you try to achieve. |
I'd like a getExtensions(Class type, String ...keywords) method or variation where I could get a list of implementing objects filtered by these keywords. I was thinking these would be added to the Extension annotation itself so that it could be applied to implementations within the application jar. The idea is I have lists of implemented interfaces in different controllers, and right now I'd have no way of easily narrowing down where I'd want each to go. |
Hi @decebals I'm glad to see your project continues growing... I would like to have a method that would be called just before actual deletion takes place. It would be helpful to clean up data your plugin uses for instance, data that is not needed any longer after removal. Can you update the link here: https://pf4j.org/ref/javadoc.html ? it is pointing to 2.1 |
Thanks! Now is not my project anymore, is an organisation.
The
Thanks! Done. |
Well, one might have a plugin stopped for a while, and then starting it. However, when you delete it, it conveys more like "I want to uninstall this and not using it anymore" |
@jgomer2001 |
@WolfgangFahl |
I'm also very interested in the hot swap feature! |
I'd like to see PF4J loosen its interfaces such that I can provide my own |
@robzienert
I think that is possible to use a custom
The interfaces make possible to modify each default behavior of PF4J. I am open to any recommendations/improvements. |
@decebals Thanks for pf4j library , its helpful :) I have a project with multiple plugins and some of those plugins have multiple extensions. Currently with the 'PluginDependencies' property I can only get the plugin's order of execution . I can use 'Ordinal' among the extensions with in a SINGLE plugin to impose an order of execution among extensions. But , I have a special situation like following . I have 3 plugins namely PluginA, PluginB and PluginC. PluginA has 2 extenions PluginAExt1, PluginAExt2 Dependency graph b/w plugins as per my requirement is like this . PluginC -> PluginB ->PluginA ,PluginC. The actually execution dependency in my use case supposed to have dependency among the extensions. This is the dependency graph among the extensions I am expecting for my use case which does not function with the current PF4j. PluginCExt1 -> PluginBExt1 -> PluginAExt1, PluginCExt2. In a nutshell, I would like to have provision to define the execution sequence of extensions across the plugins.! It seems like , I have to reinvent the wheel using the way pf4j calculates the plugin's dependency graph. We could also have single extension per plugin, then using just 'PluginDependencies' property we could get the dependency graph provided by PF4J, but that is something we don't want to have as we have strong reasons to include multiple extensions in a single plugin. Inputs are highly appreciated, thanks! |
No description provided.
The text was updated successfully, but these errors were encountered: