You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/05/05 10:47:44 UTC
svn commit: r1099720 -
/karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf
Author: jbonofre
Date: Thu May 5 08:47:43 2011
New Revision: 1099720
URL: http://svn.apache.org/viewvc?rev=1099720&view=rev
Log:
[KARAF-600] Update the "Extending Console" manual page.
Modified:
karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf
Modified: karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf
URL: http://svn.apache.org/viewvc/karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf?rev=1099720&r1=1099719&r2=1099720&view=diff
==============================================================================
--- karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf (original)
+++ karaf/trunk/manual/src/main/webapp/developers-guide/extending-console.conf Thu May 5 08:47:43 2011
@@ -43,42 +43,54 @@ h3. Manual creation
Alternatively, you can simply create the directory {{shell-sample-commands}} and create the {{pom.xml}} file inside it:
{pygmentize:xml}
-<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">
+<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>
+
<groupId>org.apache.karaf.shell.samples</groupId>
<artifactId>shell-sample-commands<artifactId>
- <packaging>jar</packaging>
+ <packaging>bundle</packaging>
<version>1.0-SNAPSHOT</version>
<name>shell-sample-commmands</name>
- <url>http://maven.apache.org</url>
+
+
<dependencies>
<dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.console</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
-</project>
-{pygmentize}
-
-h2. Dependencies
-We need to tell maven which libraries our project depends on. In the {{dependencies}} section of the pom, add the following one:
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${felix.plugin.version}</version>
+ <configuration>
+ <instructions>
+ <Import-Package>
+ org.apache.felix.service.command,
+ org.apache.felix.gogo.commands,
+ org.apache.karaf.shell.console,
+ *
+ </Import-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
-{pygmentize:xml}
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- <version>${project.version}</version>
- </dependency>
+</project>
{pygmentize}
-This dependency is needed to have access to the base classes that are used to define commands.
-
h2. Configuring for Java 5
We are using annotations to define commands, so we need to ensure maven will actually use JDK 1.5 to compile the jar.
@@ -122,8 +134,6 @@ We can now create the command class {{He
package org.apache.karaf.shell.samples;
import org.apache.felix.gogo.commands.Command;
-import org.apache.felix.gogo.commands.Option;
-import org.apache.felix.gogo.commands.Argument;
import org.apache.karaf.shell.console.OsgiCommandSupport;
@Command(scope = "test", name = "hello", description="Says hello")
@@ -178,36 +188,6 @@ The end of the maven output should look
[INFO] ------------------------------------------------------------------------
{code}
-h2. Turning the jar into an OSGi bundle
-
-OSGi bundles are jars but they require some manifest headers to be correctly recognized. We will leverage Felix's maven plugin to easily generate those.
-
-Lets turn it into a bundle: modify the line in the {{pom.xml}} to adjust the packaging:
-
-{pygmentize:xml}
- <packaging>bundle</packaging>
-{pygmentize}
-
-Add the following section at the bottom of the {{pom.xml}}, in the existing {{build/plugins}} section:
-
-{pygmentize:xml}
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.1.0</version>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Import-Package>org.osgi.service.command,*</Import-Package>
- </instructions>
- </configuration>
- </plugin>
-{pygmentize}
-
-The {{Import-Package}} is required to make sure our bundle will import the {{org.osgi.service.command}} package so that the service will be correctly seen in Felix.
-
-Let's compiled it again using the {{mvn install}} command.
-
h2. Test in Karaf
Launch a Karaf instance and run the following command to install the newly created bundle:
@@ -236,7 +216,6 @@ We add an argument to the HelloCommand:
package org.apache.karaf.shell.samples;
import org.apache.felix.gogo.commands.Command;
-import org.apache.felix.gogo.commands.Option;
import org.apache.felix.gogo.commands.Argument;
import org.apache.karaf.shell.console.OsgiCommandSupport;
@@ -313,7 +292,6 @@ Using Blueprint, you can "inject" the co
h2. Test in Karaf
-
Launch a Karaf instance and run the following command to install the newly created bundle:
{code}
karaf@root> osgi:install -s mvn:org.apache.karaf.shell.samples/shell-sample-commands/1.0-SNAPSHOT