Ce qui est une bonne façon de déployer un osgi bundle de ServiceMix?
J'essaie de développer une application de base pour Apache ServiceMix traiter avec des services web.
1) - je construire l'application (à l'aide de 'mnv installer "commande")
2) Déployer pour ServiceMix (en utilisant 'karaf@root> osgi:installer mvn:com.société/ws-test-fusible/1.0.0-INSTANTANÉ " de la commande à la console du serveur)
3) montre comment il s'est installé ('osgi:liste')
[ 157] [Installed ] [ ] [ ] [ 60] A Camel Spring Route (1.0.0.SNAPSHOT)
4) j'ai essayer de démarrer l'application
karaf@root>osgi:start 157
J'obtiens ceci:
org.osgi.framework.BundleException: Unresolved constraint in bundle com.company.ws-test-fuse [157]: Unable to resolve 157.0: missing requirement [157.0] package; (&(package=commonj.sdo)(version>=2.1.0)(!(version>=3.0.0)))
Ce qui est une bonne façon d'installer un bundle de sorte que toutes les dépendances maven obtenir téléchargé et installé automatiquement?
Aussi, je suis en droit que toutes les dépendances seront déployés à l'osgi-conteneur osgi-faisceaux de trop?
Mon POM.xml est comme suit:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->
<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>com.company</groupId>
<artifactId>ws-test-fuse</artifactId>
<packaging>bundle</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>A Camel Spring Route</name>
<url>http://www.myorganization.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<repositories>
<repository>
<id>release.fusesource.org</id>
<name>FuseSource Release Repository</name>
<url>http://repo.fusesource.com/nexus/content/repositories/releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>snapshot.fusesource.org</id>
<name>FuseSource Snapshot Repository</name>
<url>http://repo.fusesource.com/nexus/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>ea.fusesource.org</id>
<name>FuseSource Early Access Repository</name>
<url>http://repo.fusesource.com/nexus/content/groups/ea</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>release.fusesource.org</id>
<name>FuseSource Release Repository</name>
<url>http://repo.fusesource.com/nexus/content/repositories/releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>snapshot.fusesource.org</id>
<name>FuseSource Snapshot Repository</name>
<url>http://repo.fusesource.com/nexus/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>ea.fusesource.org</id>
<name>FuseSource Early Access Repository</name>
<url>http://repo.fusesource.com/nexus/content/groups/ea</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- Core -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.9.0.fuse-7-061</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>2.9.0.fuse-7-061</version>
</dependency>
<!-- Apache Cxf -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
<version>2.9.0.fuse-7-061</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jetty</artifactId>
<version>2.9.0.fuse-7-061</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>2.5.0.fuse-7-061</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-databinding-sdo</artifactId>
<version>2.5.0.fuse-7-061</version>
</dependency>
<!-- Apache tuscany SDO -->
<dependency>
<groupId>org.apache.tuscany.sdo</groupId>
<artifactId>tuscany-sdo-api-r2.1</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sdo</groupId>
<artifactId>tuscany-sdo-impl</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sdo</groupId>
<artifactId>tuscany-sdo-lib</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sdo</groupId>
<artifactId>tuscany-sdo-tools</artifactId>
<version>1.1.1</version>
</dependency>
<!-- SDO Support -->
<dependency>
<groupId>org.eclipse.xsd</groupId>
<artifactId>xsd</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.xsd</groupId>
<artifactId>xsd</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>ecore</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>ecore-change</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>ecore-xmi</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>common</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>codegen-ecore</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>codegen</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>backport-util-concurrent</groupId>
<artifactId>backport-util-concurrent</artifactId>
<version>3.0</version>
</dependency>
<!-- logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<!-- testing -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-test</artifactId>
<version>2.9.0.fuse-7-061</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- allows the route to be ran via 'mvn camel:run' -->
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>2.9.0.fuse-7-061</version>
</plugin>
<!-- Maven bundle plugin -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>*,org.apache.camel.osgi</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
OriginalL'auteur snowindy | 2012-09-25
Vous devez vous connecter pour publier un commentaire.
Une alternative est d'utiliser FAB à la déployer pour ServiceMix (vous devez installer FAB) /Fuse ESB (livré avec FAB).
FAB est capable de comprendre votre maven pom.xml fichier et de déployer nécessaire faisceaux au moment du déploiement. J'ai posté quelques liens pour plus de détails et des vidéos à:
http://www.davsclaus.com/2012/08/osgi-deployment-made-easy-with-fab.html
Une autre alternative est de créer un features.xml fichier et installer votre application à l'aide d'une fonction. Puis, dans les fonctions de fichier, vous pouvez spécifier les bundles osgi votre application exige ainsi. Et vous pouvez vous référer à d'autres fonctions, etc. Par exemple, vous pouvez installer les composants Camel, à l'aide d'une seule commande. Par exemple, pour installer le Chameau composant FTP, vous pouvez exécuter:
Donc, si vous avez une fonctionnalité de votre application que vous pourriez faire de semblable.
Mais FAB et FuseESB n'est pas le cas. Le pire, c'est que je ne comprends pas le principe comment ServiceMix gère les dépendances. Par exemple, "mvn dependency:tree' montre complète de l'arborescence des dépendances. L'arbre est assez grand. Pourtant, j'ai essayé d'installer tous. Beaucoup d'entre eux n'a pas commencé avec explication comme " org.osgi.cadre.BundleException: non résolus de la contrainte dans le bundle org.apache.à dos de chameau.chameau-core-osgi [199]: Impossible de résoudre 199.0: manquant requireme nt [199.0] forfait; &(package=org.osgi.service.de l'événement)(version>=1.2.0)(!(version>=2.0.0)))'. Cependant, aucune 'org.osgi.service.événement à la dep de l'arbre
Pouvez-vous nous expliquer ce qui deps sont vraiment utiles et qui sont en option? Ne peux pas croire que vous déployer l'ensemble du deps arbre pour tre conteneur. Ai-je raté quelque chose?
FAB vient dans la Fuse ESB de l'Entreprise. Je suggère l'utilisation de cette version. L'installation de FAB sur pur Apache ServiceMix et le classique Fuse ESB prend un peu de travail. Si vous voulez comprendre un peu plus à propos de FAB puis lire les liens, regarder les vidéos, et d'essayer les exemples de Fuse ESB de l'Entreprise etc.
ServiceMix gestions des dépendances à l'aide de Karaf fonctionnalités. Vous pouvez lire à ce sujet ici: karaf.apache.org/manual/latest-2.2.x/users-guide/...
OriginalL'auteur Claus Ibsen
Karaf de ne pas analyser votre pom.xml pour résoudre les dépendances, vous devez les installer manuellement avec les fonctionnalités suivantes:installation ou de la botte:installer. F. ex. dans votre cas
vous pouvez utiliser la pellicule pour inclure un bocal qui n'est pas réellement un paquet, comme cette écharpe:mvn:...
OriginalL'auteur white