Watch Star Fork

dingnate / dosgiJavaApache-2.0

加入码云
与超过 200 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
dosgi(道斯基)是基于osgi实现的模块框架,如果你想做模块化开发(部署)又嫌Equinox和Felix笨重,那你可以试试dosgi(道斯基)
克隆/下载
dingnate 最后提交于 更新日志
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md 3.55 KB

dosgi(道斯基)

简介

dosgi(道斯基)是基于osgi实现的模块框架,如果你想做模块化开发(部署)又嫌Equinox和Felix笨重,那你可以试试dosgi。

MANIFEST.MF规范

1.配置pom文件打包插件

<build>                                                
	<plugins>                                          
		<plugin>                                       
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>  
			<configuration>                            
				<archive>                              
					<manifestEntries>                  

2.manifestEntries节点下的MANIFEST.MF生成规范如下

<!-- 下面为模块依赖项 -->
<!-- 作为模块名,必选 -->
<Implementation-Title>${project.name}</Implementation-Title>
<!-- 作为模块版本,必选 -->
<Implementation-Version>${project.version}</Implementation-Version>
<!-- 模块的启动类,需要实现com.dosgi.module.IModule接口,必选  -->
<Boot-Class>dosgi.module.system.SystemModule</Boot-Class>
<!-- System模块的标识,System模块唯一,会首先启动,可选 -->
<Phase>System</Phase>
<!-- 框架只会扫描Module-Class-Prefix指定路径下面的class,,可选 -->
<Module-Class-Prefix>${module.class.root}</Module-Class-Prefix>
<!-- 导出包声明,多个声明已“,”分割 ,只会导出包根目录下的类,可选 -->
<!-- <Export-Package>com.x,com.x.y</Export-Package> -->
<!-- 导入包声明,多个声明已“,”分割,可指定version,可访问导入包根目录下的类 ,可选-->
<!-- <Import-Package>com.x.y,com.x;version=1.2.3</Import-Package> -->
<!-- 依赖module声明,多个声明已“,”分割,可指定version,可访问依赖module下的类,可选 -->
<!-- <Require-Module>module12,module11;version=1.2.3</Require-Module> -->
<!-- 下面为非模块依赖项 -->
<Specification-Title>${project.name}</Specification-Title>
<Specification-Version>${project.version}</Specification-Version>
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
<Implementation-Vendor-Id>dosgi</Implementation-Vendor-Id>
<X-Compile-Source-JDK>${maven.compile.source}</X-Compile-Source-JDK>
<X-Compile-Target-JDK>${maven.compile.target}</X-Compile-Target-JDK>

使用方法

普通应用

开发

  • 下载工程代码
  • 新建模块工程,可以参见dosgi.module.system工程的SystemModule和pom文件的打包配置
  • 开发模块业务逻辑
  • 运行dosgi.parent的pom.xml打包
  • 通过com.dosgi.Dosgi.start()类运行调式

部署

  • 运行dosgi.parent的pom.xml打包
  • 参考附件部署dosgi的例子将包放入modules目录
  • 根据需要修改启动脚本,运行启动脚本

web应用

开发

  • 下载工程代码
  • 新建模块工程,可以参见dosgi.module.system工程的SystemModule和pom文件的打包配置
  • 开发模块业务逻辑,开发web逻辑
  • 修改web.xml中的module.home为绝对路径,调式:dosgi.web->run as->run on server->tomcat

部署

  • 切换web.xml中的module.home为部署路径路
  • 运行dosgi.parent的pom.xml打包
  • 复制dosgi.parent/modules文件夹到tomcat/webapp/ 路径下
  • 运行tomcat

更新日志

2018/04/04

  • dosgi模块工程支持maven坐标依赖外部库
  • 支持模块动态启动,停止,重启
  • 小范围重构:DosgiLauncher,DosgiContextDefault,Dosgi,DosgiClassLoader

2018/04/03

  • 增加dosgi.web工程,支持web开发
  • 删除Main类,修改入口为com.dosgi.Dosgi.start()

项目点评 ( 4 )

你可以在登录后,发表评论

8_float_left_people 8_float_left_close