2017-11-04 2 views
0

starten Ich möchte OSGI bündeln erstellen. Ich createad eine einfache Klasse:Kann OSGI-Bundle nicht in Apache ServiceMix

public class Activator implements BundleActivator { 
public void start(BundleContext bundleContext) throws Exception { 
    System.out.println("::::START MAIL BUNDLE::::"); 
} 

public void stop(BundleContext bundleContext) throws Exception { 
    System.out.println("::::STOP MAIL BUNDLE::::"); 
} 
} 

Mein pom.xml:

<dependencies> 
    <dependency> 
     <groupId>org.osgi</groupId> 
     <artifactId>org.osgi.core</artifactId> 
     <version>6.0.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <inherited>true</inherited> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>osgi-bundle</id> 
        <goals> 
         <goal>bundle</goal> 
        </goals> 
        <phase>package</phase> 
        <configuration> 
         <instructions> 
          <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
          <Bundle-Version>${project.version}</Bundle-Version> 
          <Import-Package> 
           *;resolution:=optional 
          </Import-Package> 
         </instructions> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

I Service Mix verwenden. Ich füge org.osgi.core-6.0.0.jar und mein Glas in Zielordner hinzu. Mein Bündel ist aktiv, aber ich sehe meine Nachricht beim Starten/Stoppen des Bundles in der karaf Konsole nicht. Was mache ich falsch?

Antwort

1

Sie müssen <Bundle-Activator>your.package.name.Activator</Bundle-Activator> in der maven-bundle-config setzen. Bitte beachten Sie auch, dass Sie niemals org.osgi.core oder org.osgi.componendium bereitstellen. Die Kernpakete werden vom OSGi-Framework und Kompendium von den einzelnen Spec Impls bereitgestellt.

Verwandte Themen