h1. Developing OSGi components with EIK This chapter describes how to develop a osgi component with EIK. Now we have a functional karaf environment in Eclipse, and we will illustrate howto develop a debug simple Camel route For this example we use apache servicemix 4.4.2. Using command line, we can create our project: {noformat} mvn archetype:generate \ -DarchetypeGroupId=org.apache.karaf.eik.archetypes \ -DarchetypeArtifactId=eik-camel-archetype \ -DarchetypeVersion=0.9.0-SNAPSHOT \ -DgroupId=org.apache \ -DartifactId=eik-camel-osgi-project \ -Dversion=1.0.0-SNAPSHOT {noformat} as soon as possible this archetype will be available for m2e *Additional parameters* During the maven creation process, additional questions will be asked on the console : * Define value for property 'camel-version': The version of camel we want to use * Define value for property 'slf4j-version': The version of slf4j we want to use *Result of Maven command execution* {noformat} [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Interactive mode [INFO] Archetype repository missing. Using the one from [org.apache.karaf.eik.archetypes:camel-osgi-pde-plugin:3.0.0-SNAPSHOT] found in catalog local [INFO] Using property: groupId = org.apache [INFO] Using property: artifactId = eik-camel-osgi-project [INFO] Using property: version = 1.0.0-SNAPSHOT [INFO] Using property: package = org.apache Define value for property 'camel-version': ${camel-version}: : 2.8.5 Define value for property 'slf4j-version': ${slf4j-version}: : 1.6.1 Confirm properties configuration: groupId: org.apache artifactId: eik-camel-osgi-project version: 1.0.0-SNAPSHOT package: org.apache camel-version: 2.8.5 slf4j-version: 1.6.1 Y: : [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: camel-osgi-pde-plugin:3.0.0-SNAPSHOT [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: org.apache [INFO] Parameter: artifactId, Value: eik-camel-osgi-project [INFO] Parameter: version, Value: 1.0.0-SNAPSHOT [INFO] Parameter: package, Value: org.apache [INFO] Parameter: packageInPathFormat, Value: org/apache [INFO] Parameter: camel-version, Value: 2.8.5 [INFO] Parameter: package, Value: org.apache [INFO] Parameter: version, Value: 1.0.0-SNAPSHOT [INFO] Parameter: groupId, Value: org.apache [INFO] Parameter: slf4j-version, Value: 1.6.1 [INFO] Parameter: artifactId, Value: eik-camel-osgi-project [INFO] project created from Archetype in dir: /projects/formazione/manual/test/eik-camel-osgi-project [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.551s [INFO] Finished at: Wed Oct 10 13:54:28 CEST 2012 [INFO] Final Memory: 7M/118M [INFO] ------------------------------------------------------------------------ {noformat} *Import project in eclipse* To compile and import project in Eclipse, type: mvn clean install -DskipTests=true eclipse:eclipse then import the project in Eclipse and add to MANIFEST then inport project in eclipse and add in MANIFEST * Bundle ID * Name !/images/devcomponent_1.png! Using Eclipse IDE we can import package for our needs in the project, the package available are those present in target platform. To do that we need do double click on the MANIFEST.MF > Dependencies you can use UI to import package EIK feature allows Automatic deployment of workspace plugin projects. If you check Run configurations or in Debug configurations. You will see your project !/images/devcomponent_2.png! To run your application, select Debug button, wait few seconds for container startup and you will see !/images/devcomponent_9.png!