【问题标题】:Is CamelGroovyMethods used as a groovy category?CamelGroovyMethods 是否用作 groovy 类别?
【发布时间】:2015-01-22 10:51:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 它的添加方式可能与DefaultGroovyMethods 中的方法相同,通过元编程和元对象协议。

标签: dynamic groovy apache-camel decorator


【解决方案1】:

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

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

【讨论】:

  • 非常感谢。非常感谢您提供文章链接,它将帮助我更好地理解它!
猜你喜欢
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2013-07-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多