`

SpringDM笔记7-开发SpringDM Bundle

 
阅读更多

基于Maven创建:

1. mvn archetype:create -DgroupId=com.manning.sdmia -DartifactId=SpringDM-Sample

    mvn eclipse:eclipse

2. Package:Felix Bundle Plugin

    pom.xml:

    ...

    <build>
      <plugins>
        <plugin>
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
           <version>2.3.4</version>
           <extensions>true</extensions>
        </plugin>

        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.3.2</version>
           <configuration>

              <source>1.6</source>
              <target>1 .6</target>
           </configuration>
         </plugin>

     </plugins>
   </build>

   执行命令:mvn package

3. 部署安装:

    install file:///D:/sts_workspace/SpringDM-Sample/target/SpringDM-Sample-1.0.0.jar

4. 测试代码开发

    The Spring DM integration test framework provides a handy abstract

    class(AbstractConfigurableBundleCreatorTests) that provides hooks for the OSGi container  

    configuration, and this test uses it as its parent class。

    例如:

    public class SpringDmSampleTest extends AbstractConfigurableBundleCreatorTests {

    public void testIntergration() {
        boolean bundleIsHereAndStarted = false;
        for (Bundle bundle : bundleContext.getBundles()) {
            if ("com.manning.sdmia.SpringDM-Sample".equals(bundle.getSymbolicName()) &&  

                bundle.getState() == Bundle.ACTIVE) {
                bundleIsHereAndStarted = true;
                break;
            }
        }
        assertTrue("SpringDM-Sample is not installed or activated!",bundleIsHereAndStarted);
    }

    /*
     * SpringDM会为测试提供OSGi容器及依赖的JAR,若要添加扩展的JAR则需要复写该方法;
     * 同时若希望被扩展的Bundle能被安装并启动,还需要提供Maven标示符:grouoId,
     * artifactId,version。
    */

    @Override
     protected String[] getTestBundlesNames() {
        return new String[]{"com.manning.sdmia,SpringDM-Sample,1.0.0"};
    }

    /*
     * 若希望在测试周期中SpringDM测试框架能自动安装客制化的Bundle,需要复写该方法;
     * 需指定一个地址路径指定所有希望的测试的周期中能被安装在OSGi容器中的
    */

    @Override
    protected Resource getTestingFrameworkBundlesConfiguration() {
        return new InputStreamResource(SpringDmSampleTest.class.getResourceAsStream("boot-

        bundles.properties"));
    }
  }

  其中文件boot-bundles.properties:

# versioning
ignore.junit.version=4.8.1
ignore.log4j.version=1.2.15

ignore.spring.version=3.0.5.RELEASE
ignore.spring.osgi.version=2.0.0.M1
ignore.slf4j.version=1.6.1
ignore.asm.version=2.2.3
ignore.aopalliance.version=1.0.0

# groupIds
ignore.spring.groupId=org.springframework
ignore.spring.osgi.groupId=org.springframework.osgi
ignore.slf4j.groupId=org.slf4j

# junit
org.junit,com.springsource.org.junit,${ignore.junit.version}=
# log4j
org.apache.log4j,com.springsource.org.apache.log4j,${ignore.log4j.version}=

# slf4j (BRITS)
${ignore.slf4j.groupId},com.springsource.slf4j.api,${ignore.slf4j.version}=
${ignore.slf4j.groupId},com.springsource.slf4j.log4j,${ignore.slf4j.version}=
${ignore.slf4j.groupId},com.springsource.slf4j.org.apache.commons.logging,${ignore.slf4j.version}=
# aop alliance
org.aopalliance,com.springsource.org.aopalliance,${ignore.aopalliance.version}=
# asm
org.objectweb.asm,com.springsource.org.objectweb.asm,${ignore.asm.version}=

# spring libs
${ignore.spring.groupId},org.springframework.asm,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.beans,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.core,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.context,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.expression,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.aop,${ignore.spring.version}=
${ignore.spring.groupId},org.springframework.test,${ignore.spring.version}=

# spring osgi libs
${ignore.spring.osgi.groupId},spring-osgi-io,${ignore.spring.osgi.version}=
${ignore.spring.osgi.groupId},spring-osgi-core,${ignore.spring.osgi.version}=
${ignore.spring.osgi.groupId},spring-osgi-annotation,${ignore.spring.osgi.version}=+15
${ignore.spring.osgi.groupId},spring-osgi-extender,${ignore.spring.osgi.version}=
${ignore.spring.osgi.groupId},spring-osgi-test,${ignore.spring.osgi.version}=

 

5. 启动容器

    java -jar org.eclipse.osgi-3.5.1.R35x_v20090827.jar -console

6. 案例代码

    见附件:SpringDM-Sample.rar

 

 

 

 

分享到:
评论

相关推荐

    SpringDM笔记6-Fragment及配置Log4j Fragment Bundle

    在本文中,我们将深入探讨Spring DM(现在称为Spring OSGi)中的Fragment Bundle以及如何配置Log4j在Fragment Bundle中的应用。Spring DM是Spring框架在OSGi(Open Service Gateway Initiative)环境下的扩展,它...

    SpringDM笔记13-OSGi服务注册与引用

    在SpringDM(Spring Dynamic Modules)框架中,OSGi(Open Service Gateway Initiative)服务注册与引用是核心功能之一,它使得模块化系统中的组件能够互相发现并交互。本篇笔记将探讨如何在OSGi环境中注册服务以及...

    adt-bundle-windows-x86-20140624工具文件

    "adt-bundle-windows-x86-20140624工具文件"是一个专为Windows平台上的x86架构设计的Android开发工具包。这个压缩包包含了Android开发者需要的一系列核心工具,使得用户能够在本地环境中创建、调试和发布Android应用...

    adt-bundle-windows-x86_64-20140624

    "adt-bundle-windows-x86_64-20140624" 是一个专为Windows 64位系统设计的Android开发工具包,它包含了开发Android应用所需的所有基本组件,是Android开发者的重要工具。这个版本发布于2014年6月24日,为当时的...

    adt-bundle-windows-x86-20140624

    "adt-bundle-windows-x86-20140624" 是一个专为Windows平台32位架构设计的Android开发工具包。这个压缩包是Google为了方便开发者进行Android应用开发而提供的集成环境,包含了所有必要的工具和软件,使得开发者能够...

    adt-bundle-windows-x86_64-中文包

    下面俩个版本都能正常使用: 编译器版本号:adt-bundle-windows-x86_64-20130717 编译器版本号:adt-bundle-windows-x86_64-20130917 汉化方法: 拷贝中文包中的文件到编译器同名目录下

    adt-bundle-windows-x86_64_20140101.zip下载

    adt-bundle-windows-x86_64_20140101.zip下载,百度云盘分享链接下载

    sqlite-netFx40-setup-bundle-x86-2010-1.0.113.0.exe

    sqlite-netFx40-setup-bundle-x86-2010-1.0.113.0.exe

    adt-bundle-windows-x86_64-20131030(64位, 多SDK版)

    Android 集成开发环境 adt-bundle-windows-x86_64-20131030(64位, 多SDK版) 自带Eclipse, Android SDK(2.2到4.4的SDK都有),自己下载后重新打的包

    adt-bundle-windows-x86_64-20190307

    adt-bundle-windows-x86_64-20190307, 支持android4.4、android5.1 android6.0 android7.1 android8.1 androidP

    spring-dm-osgi整合jar包

    标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...

    postgis-bundle-pg15x64-setup-3.3.2-2.exe

    postgis-bundle-pg15x64-setup-3.3.2-2.exe是一个安装程序,用于在64位操作系统上安装PostGIS和PostgreSQL扩展。PostGIS是一个开源的空间数据库扩展,它允许用户在PostgreSQL数据库中存储和查询地理空间数据。该扩展...

    OSGi与Spring:Spring DM开发

    ### OSGi与Spring:Spring DM开发环境配置详解 #### 一、引言 随着软件架构的不断发展,模块化和微服务化的趋势日益明显。在Java领域,OSGi(Open Service Gateway Initiative)作为一套成熟的技术标准,为实现模块...

    spring-tool-suite-3.8.4.RELEASE-e4.6.3-win32-x86_64_sts-bundle.zip

    Spring Tool Suite (STS) 是Spring框架的强大伴侣,它提供了丰富的特性来提升Spring开发的效率。这些特性包括: 1. **Spring项目向导**:STS提供了一套直观的向导,帮助开发者快速创建Spring Boot、Spring MVC、...

    adt-bundle-windows-x86

    adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-windows-x86 adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-windows-x86 adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-...

    adt-bundle-windows-x86-20130522

    - **版本更新**:虽然 `adt-bundle-windows-x86-20130522` 版本相对较旧,但在当时是非常流行的开发工具。不过,随着技术的发展,建议使用最新的开发工具,例如 Android Studio,它已经取代了 Eclipse ADT 成为官方...

    android-studio-bundle-145.3537739-windows(1/22)

    android-studio-bundle-145.3537739-windows 目前来说android最新开发工具。

    adt-bundle-windows-x86_64_20140101.zip_网盘下载.txt

    adt-bundle-windows-x86_64_20140101.zip 文本里面有百度云盘链接,和提取码 资源1.64个gb

    adt-bundle-windows-x86_64-20130219.zip

    总之,adt-bundle-windows-x86_64-20130219.zip是早期Android开发者常用的一个工具集,虽然现在可能已被更现代的Android Studio取代,但它见证了Android开发的初期阶段,对于学习Android历史和理解早期开发流程有着...

Global site tag (gtag.js) - Google Analytics