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

Move GremlinDslProcessor to its own artifact

    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

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: