cooma(microcontainer, SPI Provider Container) 0.3.0 released

Posted on March 8, 2013

发布功能

  1. Adaptive重构,去掉对Config概念的依赖。
  2. 在扩展点配置文件支持属性,ExtensionLoader获取扩展的属性。
  3. 重构完成后更新Demo和文档
  4. Bug Fix: NAME_PATTERN正则表达式错误
  5. 公共方法:属性名到get方法名
  6. AdaptiveInstance的调用性能损耗测试

这版本重构了“Adaptive重构,去掉对Config概念的依赖”、“ExtensionLoader获取扩展的属性”,功能比较完整,这个让概念和使用更清楚。

推荐此版本,没有使用之前的版本。

在文档有示例说明。

发布链接

概述

Cooma适用于为框架的实现动态扩展点(Extension)加载和配置。

实现原型来自于Service implementation of JDK5

参见Quick Start中的示例代码及其说明,快速了解。

概念上极简独立

  • 完全割除与容器不相关的概念。
  • 审视已有的概念,谨慎引入新概念。

实现上简单直白

  • 不算注释,实现代码 少于1000行
  • 保持代码可读性。
  • 不考虑没有实际应用的概念。
  • 谨慎对待性能优化;不能因此打乱代码的简单性。

集成上的简易灵活

  • 保持灵活的扩展性。
  • 开发者友好。
  • 集成是否简易是设计是否良好的有效指标。

功能

  • 以插件方式加载扩展
  • 支持依赖扩展点的自动加载(扩展的IOC)
  • 可以有扩展点Wrapper,为扩展写公共Filter代码(扩展的AOP)
  • 统一的配置方式来配置各级扩展点
  • 查询插件实现
  • 支持配置方式/编程方式

核心概念

  • Extension Point,扩展点,要扩展的接口
  • Extension,扩展,即扩展点的实现
  • Extension Instance,扩展实例,即扩展点实现类的实例
    # ExtensionLoader中维护了Extension Instance的 单例
  • Extension Adaptive Instance,扩展的自适应实例
  • Extension Wrapper,所有扩展点实现调用时都会先触发的执行