Forgive me for asking something I could easily google, but where do annotation processors fit into the development lifecycle? I admit I've never used one (that I know of.) It would probably help if I did before giving too much feedback ;)
~Lincoln
Ok, part way through writing this email I realized it probably makes some sense to break it down a bit more.
Now I'm thinking we need an AnnotationProcessor interface with methods like:
String getClassName()
String getOptions()
String getSourceDirectory()
String getOutputDirectory()
List<Dependency> getDependencies()
Then the AnnotationProcessorFacet methods would be:
addAnnotationProcessor(AnnotationProcessor processor)
removeAnnotationProcessor(AnnotationProcessor processor)
List<AnnotationProcessor> getAnnotationProcessors()
processAnnotations()
processAnnotation(AnnotationProcessor processor)
That's some real thinking on the fly so any other thoughts/enhancements are most welcome!
KenOn Wed, Jul 6, 2011 at 5:04 PM, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:
Hmm,
Good questions. I think #2 would probably be the easiest, but we could offer #1 as an alternative for those who don't want to use the maven build plugin.
I think #3 would probably be the most robust for future use. What kinds of methods are you thinking of including for the facet?
~Lincoln--On Sun, Jul 3, 2011 at 3:41 PM, Ken Finnigan <ken@kenfinnigan.me> wrote:
Hey Lincoln,
Have been working on adding JPA model generation to the persistence plugin over the last few days and have been mulling over the best way to implement it and wanted to get your thoughts.
I see that there are a few possibilities:
1) Call the NativeMethodExec utility to call javac for running annotation processing only.
2) Add an annotation processing profile to the pom as part of the install of the plugin (if they select they want model gen), and then performing the model gen would execute the maven to process and generate annotations
3) An extension of 2 would be to make an AnnotationProcessorFacet, and then do 2 as a Maven implementation of that facet.
After thinking about it today I think 3 seems the most flexible, but wanted to get your thoughts.
Thanks
Ken
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"