package com.package.actprovider;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceRegistration;
import com.package.Application;
import org.osgi.framework.ServiceEvent;
/**
* This class implements a simple bundle that utilizes the OSGi
* framework's event mechanism to listen for service events. Upontting
* receiving a service event, it prints out the event's details.
**/
public class Activator implements BundleActivator , ServiceListener{
private ServiceRegistration registration;
//private Application application;
/**
* Implements BundleActivator.start(). Prints
* a message and adds itself to the bundle context as a service
* listener.
* @param context the framework context for the bundle.
**/
@Override
public void start(BundleContext context)
{
System.out.println("Starting to listen for service events.++++");
context.addServiceListener(this);
}
/**
* Implements BundleActivator.stop(). Prints
* a message and removes itself from the bundle context as a
* service listener.
* @param context the framework context for the bundle.
**/
@Override
public void stop(BundleContext context)
{
context.removeServiceListener(this);
System.out.println("Stopped listening for service events.");
}
/**
* Implements ServiceListener.serviceChanged().
* Prints the details of any service event from the framework.
* @param event the fired service event.
**/
public void serviceChanged(ServiceEvent event)
{
String[] objectClass = (String[])
event.getServiceReference().getProperty("objectClass");
if (event.getType() == ServiceEvent.REGISTERED)
{
System.out.println(
"Ex1: Service of type " + objectClass[0] + " registered.");
}
else if (event.getType() == ServiceEvent.UNREGISTERING)
{
System.out.println(
"Ex1: Service of type " + objectClass[0] + " unregistered.");
}
else if (event.getType() == ServiceEvent.MODIFIED)
{
System.out.println(
"Ex1: Service of type " + objectClass[0] + " modified.");
}
}
}
Manifest-Version: 1.0
Bundle-Description: A bundle that displays messages at startup and whe
n service events occur
Bundle-Name: Service listener example
Bundle-Version: 1.0.0
Bundle-Activator: com.package.actprovider.Activator
Bundle-Vendor: Apache Felix
Import-Package: org.osgi.framework
Created-By: 1.8.0_101 (Oracle Corporation)
http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0
<groupId>com.package</groupId>
<artifactId>myfoo</artifactId>
<version>0.1.0</version>
<packaging>bundle</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath />
</parent>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>none</phase>
</execution>
</executions>
</plugin>
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.9</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId>
<configuration> <archive> <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive> </configuration> </plugin> -->
<plugin>
\
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
<groupId>sdp-api-java</groupId>
<artifactId>sdp-api-java</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
请建议我如何在osgi容器中添加spring-boot包
Spring boot和OSGi是相互排斥的。你可以在一定程度上使用spring,但即使它也不能正常工作。
因此最佳实践是基于声明性服务或Blueprint构建OSGi应用程序。您还可以看看Apache Karaf对JPA、servlets等技术的支持...
这会比spring boot多做一点努力,但您应该能够解决相同的问题。
问题内容: 我陷入了Eclipse 4 RCP应用程序的一个问题。我需要记录一些事件。我需要以某种方式获得对记录器的引用。我知道如何使用来做到这一点,但是我仍然找不到在没有依赖注入的情况下如何获得的方法,而依赖注入无法在激活器中使用。有人知道吗,请问如何解决这个问题? 非常感谢 问题答案: 令人遗憾的是,没有注射就无法获得。关于如何在未附加到应用程序模型的类中使用eclipse 4 DI的答案中写
问题内容: 我正在尝试在Eclipse中创建一个简单的插件。运行应用程序时,我在日志文件中看到此错误: org.osgi.framework.BundleException:捆绑包org.xy的激活器捆绑包org.xy的激活器无效。 您对此错误有任何想法吗? 问题答案: 检查你的 部分 如果未正确指定最终二进制结果中应包含的内容,它将无法正常工作。检查.class文件是否在MANIFEST.MF所
我正在开发一个简单的应用程序来演示Apache Karaf的使用。我在eclipse.Now开发了一个简单的基于maven的动态Web项目,我想在apache中部署它karaf.Following代码- POM中的家属。可扩展标记语言 MANIFEST.MF 自定义清单文件的给定路径 现在每当我试图在karaf中安装应用程序时,使用- 我得到错误作为- 执行命令时出错:安装软件包时出错:无法安装软
在LXD容器中,应用程序应该如何编写脚本/自动部署? 例如,在LXD容器中部署应用程序的最佳方法是使用bash脚本(它部署应用程序)?如何通过在主机上执行命令在容器内执行此bash脚本? 有没有任何工具/方法可以以类似于Docker食谱的方式做到这一点?
我正在尝试将.war、.aar、.xml和.properties文件部署到tomcat docker容器。我使用了下面的Dockerfile和基本的tomcat docker映像。 到目前为止一切正常。它提取war文件并启动容器内的应用程序。 但是现在我需要像这样添加/编辑“/usr/local/tomcat/webapps/root/web-inf//”和“/usr/local/tomcat/w
我刚刚启动了一个新的应用程序,但当我点击欢迎登船页面上的“关于您的应用程序的环境”链接时,会出现这个错误。 启动应用程序时出错当Pow试图运行时,您的Rack应用程序引发了异常。 Bundler::,但找不到任何源代码 我的应用正在运行: 轨道3.2。6 Ruby 1.9。3p194 Rubygems 1.8。24 RVM 1.14。5 战俘0.4。0 我发现了类似的问题,问题在于如何让乘客安静下