Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2411

Move GremlinDslProcessor to its own artifact

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Done
    • 3.4.8
    • 3.6.0
    • process

    Description

      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.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            spmallette Stephen Mallette
            omichallat Olivier Michallat
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment