[ 
https://issues.apache.org/jira/browse/TINKERPOP-2411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17187949#comment-17187949
 ] 

Stephen Mallette commented on TINKERPOP-2411:
---------------------------------------------

Interesting analysis - thank you. I was thinking about some module 
restructuring for 3.5.0 when we could take a breaking change like this .so 
perhaps this one could be added to the list for that release. 

> Move GremlinDslProcessor to its own artifact
> --------------------------------------------
>
>                 Key: TINKERPOP-2411
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2411
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.4.8
>            Reporter: Olivier Michallat
>            Priority: Minor
>
> Currently {{GremlinDslProcessor}} is located directly in the {{gremlin-core}} 
> artifact. This has a few downsides:
>  * it pulls a runtime dependency to JavaPoet
>  * annotation processing is always on. The compiler will have to scan the 
> classpath to check if {{GremlinDsl}} is used anywhere. I believe this is an 
> additional step that would not happen if no processor was present.
> It's a good practice to place annotation processors in their own artifact. 
> Then users can opt in, in one of two ways:
>  * place the JAR in their compile classpath, but not the runtime one (e.g. 
> "provided" scope in Maven)
>  * or use the special {{-processorpath}} of javac 
> ({{<annotationProcessorPaths>}} in the Maven compiler plugin config).
> Either way this provides a cleaner separation, the dependencies that are 
> specific to the processing / code generation part are not retained at runtime.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to