pf4j-spring icon indicating copy to clipboard operation
pf4j-spring copied to clipboard

Extensions.idx files get not generated in Elipse although annotation processing is activated

Open egloffmark opened this issue 5 years ago • 3 comments

I tried to run your demo application with the development mode (-Dpf4j.mode=development) in Eclipse. I realized that the extension files get not generated in the "target/classes/META-INF" folder although I have activated on the plugin projects the Java compiler option "Enable Annotation Processing".

Selection_001

If I run the Maven build to produce the jar files then the extension files are packed inside the jar files. So I assume it is a problem of the Eclipse processing? I am using Eclipse v2019-03 and Java 1.8 and version 0.5.0 of your project

Please see the log statements when I start your demo "boot" application log.txt

egloffmark avatar May 01 '19 09:05 egloffmark

It is definitely an eclipse issue - if I just run "maven compile" then the "extensions.idx" files get generated.

I could solve the issue by either configuring Eclipse to use for the Annotations your "pf4j-2.6.0.jar" by adding it explicitly to the "FactoryPath" in the Annotations Settings. This of course is not a preferred option so I need to have always the jar file located somewhere and maintained.

Selection_003

The better way is to use the additional eclipse plugin "m2e-apt" (https://marketplace.eclipse.org/content/m2e-apt). This generates a new configuration menu option at the project settings. There you can activate / synchronize the annotation processing with the maven plugin.

Selection_004

However not sure why such an explicit configuration / workaround is necessary. May be Eclipse has changed or your PF4J project need to be updated so Eclipse would automatically detect the annotation processors when the processing has been activated? would be good if you can clarify this issue.

egloffmark avatar May 01 '19 10:05 egloffmark

They are some issues that make reference to Eclipse:

  • https://github.com/pf4j/pf4j/issues/258
  • https://github.com/pf4j/pf4j/issues/249

For no extensions issue:

  • https://github.com/pf4j/pf4j/issues/249#issuecomment-444063866
  • https://github.com/pf4j/pf4j/issues/21#issuecomment-53316320

I don't use Eclipse in my projects so I know too much about it, but I am sure that a lot of PF4J users use Eclipse. If I can improve something please create a PR or add a comment with what I can do.

decebals avatar May 01 '19 11:05 decebals

I'm using Eclipse as well and can confirm, that I'm having exactly the same problem. Just added the pf4j....jar to the "Factory path" as shown above and with that it is working. @decebals, I'm unfortunately not used to the Java Annotations API and missed some background information about what it does or should do. Therefore I'm thinking it might be worth to add a few more words about it at this place:

PF4J uses Java Annotation Processing to process at compile time all classes annotated with @Extension and to produce the extensions index file.

And maybe add a link for further reading.

cwiechmann avatar Oct 28 '19 21:10 cwiechmann