扩展Tuscany binding 的注意事项
最近在琢磨着整个BlazeDS的SCA binding出来,Tuscany 用的顺手了,自然就用Tuscany 来做SCA 实验。虽然因为从BlazeDS 中扒代码出来遇到了点困难,但是扩展Tuscany Biding 的思路已经理清,所以先写这么一篇来灌水。本文不涉及BlazeDS 的部分,只是列出几个兄弟在实现Tuscany Biding 中遇到的容易被忽略的地方。
0/ targetNamespace 在各处要保持一致
其实理由很简单,目标命名空间一致才能找到东东嘛。但问题是这个targetNamespace 分散在各处,而又没有统一的维护工具,目前的IDE 工具做的也不够好。嗯,当然也可能是我比较圡,没找到好用的工具。我的case 比较简单,就三处有targetNamespace:composite 配置文件,/META-INFO/services底下的ValidationSchema 和 StAXArtifactProcessor。
1/ 是否真有必要实现StAXArtifactProcessor
如果扩展的binding只要配置一些基本的属性,完全可以用 org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor 来完成配置的解析,没有必要实现自己的StAXArtifactProcessor。比如,我的就一个uri 要配置,DefaultBeanModelProcessor 完全可以做这事了。注意:此项配置要保留,否则会杯具的。
2/ 尽量提供ValidationSchema
ValidationSchema 是用来保证Binding 使用者正确使用你的扩展的校验机制。如果提供了足够多的校验,并且提示信息都很友好,使用者很容易就能完成一个自我学习的过程。
3/ 实现ModuleActivator 不是必须的
ModuleActivator 是模块加载过程的第一步。如果扩展模块在加载过程中不作什么特殊动作,比如注册扩展点,完全可以不提供自己的ModuleActivator,用默认的就可以了。
4/ 心思细致
自定义扩展模块时必须要心思细致,因为有太多的配置,而且都是约定性的。
ps: 推荐两个参考资料

Recent comments
1 sec ago
13 hours 50 min ago
6 days 23 hours ago
21 weeks 4 days ago
23 weeks 4 hours ago
1 year 9 weeks ago
1 year 9 weeks ago
1 year 9 weeks ago
1 year 15 weeks ago
1 year 22 weeks ago