CamelGroovyMethods 是否用作 groovy 类别?

Is CamelGroovyMethods used as a groovy category?

Apache Camel 带有一些相对不错的 Groovy 扩展,例如,您可以将闭包与 Java DSL 一起用于定义路由。

大多数(如果不是全部)提供这些扩展的附加方法似乎位于 class CamelGroovyMethods 中,静态方法如

public static ProcessorDefinition<?> process(ProcessorDefinition<?> self,
        Closure<?> processorLogic){/* implementation */}

Cameljavaclasses的实际扩展是如何实现的? CamelGroovyMethods 是否在某处用作类别,如果是,use(CamelGroovyMethods) 在哪里调用?

只是一个猜测,但由于它们被称为扩展方法,所以它们可能被定义为扩展方法。查看 jar,您应该在 META-INF/services 中找到一个名为 org.codehaus.groovy.runtime.ExtensionModule 的文件。看看 Creating an extension module。我自己使用过这种技术并且效果很好,除非你想提供自定义构造函数,这需要一种替代机制。

... 是的,找到了 ExtensionModule file in GitHub。他们甚至提供了 dsld 文件来帮助在 Eclipse 中完成代码。