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 中完成代码。
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 中完成代码。