`
conkeyn
  • 浏览: 1519539 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

osgi gemini blueprint环境

    博客分类:
  • OSGI
 
阅读更多

Gemini Blueprint应用

 

 

1.  Gemini Blueprint环境搭建

 

1.0.  Gemini blueprint环境下载

个人建议下载virgo环境,而不是下载Gemini web开发包。

 http://www.eclipse.org/downloads/download.php?file=/virgo/release/VP/3.6.3.RELEASE/virgo-tomcat-server-3.6.3.RELEASE.zip&mirror_id=1071

 

1.1.  搭建Gemini Server

步骤1

步骤2

 

 

步骤3

 

步骤4

步骤5

步骤6,添加运行环境的目录

步骤7

步骤8:下面这几个包需要手动选择添加。

 

1.2.  配置plug-in development

激活目标平台。

步骤1:打开window->preferences->Plugin-in Development->Target Platform

步骤2:选中目标平台,然后按下“Reload”,最后点击“Apply””OK”

2.  Gemini HelloWorld

 

2.1.  HelloWorld Service

步骤1创建两个Plug-in项目,项目名称分别为:springdm_helloworldspringdm_client

步骤2展开两个项目树如下图

 

步骤3添加HelloWorld.java代码

package springdm.helloworld;

 

publicinterface HelloWorld

{

    String sayHello(String name);

}

 

 

步骤4添加HelloWorld的实现代码

package springdm.helloworld;

 

publicclass HelloWorldImpl implements HelloWorld

{

 

    @Override

    public String sayHello(String name)

    {

       return"Hello "+name;

    }

 

}

 

步骤5

步骤6

步骤7springdm_helloworld/META-INF目录下创建spring目录(如步骤2展示的项目树结构),并在spring目录下创建两个XML文件,分别是:helloworld-spring-osgi.xmlhelloworld-spring.xml。内容分别为:

 

helloworld-spring-osgi.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"

    xsi:schemaLocation="

  http://www.springframework.org/schema/beans

  http://www.springframework.org/schema/beans/spring-beans.xsd

  http://www.springframework.org/schema/osgi

  http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <osgi:service interface="springdm.helloworld.HelloWorld" ref="helloWordService"  />

</beans>

 

helloworld-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"

    xsi:schemaLocation="

  http://www.springframework.org/schema/beans

  http://www.springframework.org/schema/beans/spring-beans.xsd

  http://www.springframework.org/schema/osgi

  http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <bean id="helloWordService" class="springdm.helloworld.HelloWorldImpl" />

</beans>

 

步骤8运行

 

步骤9配置Plugin-in运行环境,此步骤与1.1Gemini Server环境类似。

步骤10:在osgi>命令环境输入“ss”,列表出当前OSGi运行环境中的plug-in包。可以看到plug-in id5657的已经是ACTIVE状态。

osgi> ss

"Framework is launched."

 

 

id  State       Bundle

0   ACTIVE      org.eclipse.osgi_3.9.1.v20140110-1610

                Fragments=23, 28

………

 

55  ACTIVE      javax.servlet.jsp_2.2.0.v201112011158

56  ACTIVE      springdm_client_1.0.0.qualifier

57  ACTIVE      springdm_helloworld_1.0.0.qualifier

 

步骤11继续输入 osgi> b 57osgi> b 56,显示plug-in的详细信息。要能看到如下图显示出来的结果。通过gemini blueprint注册的服务。

2.2.  HelloWorld Client

前面某些步骤是相似的,就不再赘述了。下列步骤列出一些不同点。

步骤1添加依赖springdm.helloworld

步骤2添加Client代码

package springdm_client;

 

import org.osgi.framework.Bundle;

 

import springdm.helloworld.HelloWorld;

 

publicclass Client

{

    private HelloWorld helloWorld;

   

    private Bundle hw;

   

    publicvoid init(){

       System.out.println(helloWorld.sayHello("client"));

       System.out.println(hw.getHeaders().toString());

    }

 

    public HelloWorld getHelloWorld()

    {

       returnhelloWorld;

    }

 

    publicvoid setHelloWorld(HelloWorld helloWorld)

    {

       this.helloWorld = helloWorld;

    }

 

    publicvoid setHw(Bundle hw)

    {

       this.hw = hw;

    }

}

 

步骤3META-INF/spring目录下的文件内容

 

client-spring-osgi.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:osgi="http://www.springframework.org/schema/osgi"

    xsi:schemaLocation="

  http://www.springframework.org/schema/beans

  http://www.springframework.org/schema/beans/spring-beans.xsd

  http://www.springframework.org/schema/osgi

  http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <osgi:reference id="hello" interface="springdm.helloworld.HelloWorld" />

    <osgi:bundle id="hw" symbolic-name="org.eclipse.gemini.blueprint.extender"></osgi:bundle>

</beans>

 

client-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:osgi="http://www.springframework.org/schema/osgi"

    xsi:schemaLocation="

  http://www.springframework.org/schema/beans

  http://www.springframework.org/schema/beans/spring-beans.xsd

  http://www.springframework.org/schema/osgi

  http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <bean id="client" class="springdm_client.Client" init-method="init">

        <property name="helloWorld" ref="hello" />

        <property name="hw" ref="hw" />

    </bean>

</beans>

 

步骤4需要将两个包勾起来,在同一个环境中运行。

 

控制台结果:

osgi> Hello client

[Ljava.lang.Object;@1b32627

 

3.  Gemini WEB 应用

 

  • 大小: 35 KB
  • 大小: 48.8 KB
  • 大小: 32.1 KB
  • 大小: 19.2 KB
  • 大小: 59.9 KB
  • 大小: 51.2 KB
  • 大小: 48.6 KB
  • 大小: 85.8 KB
  • 大小: 49 KB
  • 大小: 16.1 KB
  • 大小: 19.2 KB
  • 大小: 45.3 KB
  • 大小: 23.3 KB
  • 大小: 31.5 KB
  • 大小: 37.2 KB
  • 大小: 56.4 KB
  • 大小: 39 KB
  • 大小: 44 KB
分享到:
评论

相关推荐

    基于gemini的blueprint(原生是Spring DM)实现对bundle生命周期的监听

    标题中的“基于gemini的blueprint(原生是Spring DM)实现对bundle生命周期的监听”涉及到的是OSGi(Open Service Gateway Initiative)框架下的一种服务管理机制。OSGi是一种模块化系统,它允许Java应用程序被分解为...

    osgi-tutorial(7).zip

    而Gemini Blueprint是Eclipse基金会的一个项目,它提供了对OSGi Blueprint服务的实现,旨在简化在OSGi环境中构建和部署Java应用程序。 在OSGi中,模块化是其核心特性,每个模块称为一个Bundle。Bundle包含了一组...

    OSGi与Web容器的整合

    目标平台是开发和运行OSGi应用的基础,需要包含必要的OSGi框架(如Equinox)、Gemini Blueprint和Gemini Web的库,以及可能需要的其他依赖,如Spring框架。 **2.5 创建Web项目** 创建WAB项目包括: 1. 在Eclipse中...

    Intellij 13下OSGi的Maven例子

    为了在IntelliJ IDEA中配置OSGi项目,我们首先需要安装支持OSGi的插件,如Bndtools或Eclipse Gemini Blueprint。接着,我们需要创建一个新的Maven项目,并在`pom.xml`中添加对OSGi相关的依赖,如Apache Felix或...

    virgo中添加hibernate需要的库

    通常,这些可以在Maven仓库或Eclipse Gemini Blueprint等OSGi友好项目中找到。 2. **添加Hibernate依赖**:在Virgo的配置管理界面或者通过命令行工具,将这些Hibernate bundles导入到服务器中。确保导入的顺序正确...

    Apache Karaf调研文档

    Karaf 是一个基于 OSGi 的运行环境,提供了一个轻量级的 OSGi 容器,可以用于部署各种组件,应用程序。Karaf 提供了很多特性用于帮助开发者和用户更加灵活的部署应用,例如热部署、动态配置、几种日志处理系统、...

Global site tag (gtag.js) - Google Analytics