...
This sections presents a simple "Hello World" component defined using annotations, and also explains how to build the bundle using either Bnd, Ant, or Maven.
Hello World Component
...
No Format |
---|
Bundle-Name: Hello World Using Dependency Manager Annotations
Bundle-SymbolicName: org.apache.felix.dependencymanager.samples.annotation.hello
Import-Package: *
Private-Package: org.apache.felix.dependencymanager.samples.annotation.hello
-plugin org.apache.felix.dm.annotation.plugin.bnd.AnnotationPlugin;log=warn
|
Compiling with Ant:
Since Bnd provides a Ant task, you can use the bnd directives above with the following build.xml:
(it is assumed that directives.bnd, bnd.jar, json-20070829.jar and org.apache.felix.dependencymanager.annotation.jar are in the current directory)
No Format |
---|
<project name="TestDM" default="bnd"> <property name="bnd" value="bnd.jar" /> <property name="json" value="json-20070829.jar" /> <property name="dmannot" value="org.apache.felix.dependencymanager.annotation.jar" /> <target name="compile"> <delete dir="target/classes" quiet="yes" /> <mkdir dir="target/classes" /> <javac srcdir="src/main/java" destdir="target/classes" classpath="${dmannot}" /> </target> <target name="bnd" depends="compile"> <taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${dmannot}:${bnd}:${json}" /> <bnd classpath="target/classes" eclipse="false" files="directives.bnd" output="org.apache.felix.dependencymanager.samples.annotation.hello.jar" /> </target> </project> |
Compiling with Maven:
When compiling with Maven, you have to use the Dependency Manager Maven annotation plugin:
No Format |
---|
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<osgi.version>4.2.0</osgi.version>
</properties>
<name>Hello World Using Dependency Manager Annotations</name>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.dependencymanager.samples.annotation.hello</artifactId>
<version>3.0.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>org.apache.felix.dependencymanager.annotation</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>org.apache.felix.gogo.runtime</artifactId>
<version>0.6.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Name>Hello World Using Dependency Manager Annotations</Bundle-Name>
<Bundle-SymbolicName>org.apache.felix.dependencymanager.samples.annotation.hello</Bundle-SymbolicName>
<Import-Package>*</Import-Package>
<Private-Package>org.apache.felix.dependencymanager.samples.annotation.hello</Private-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.dependencymanager.annotation</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>scan</goal>
</goals>
<configuration>
<log>info</log>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
|