2017-03-01 1 views
0

Je déploie mon projet apache-camel dans JBOSS Fuse en tant que fonction. Le fichier de caractéristiques karaf suivant est utilisé pour le projet.Modifier l'ordre dans lequel les ensembles sont déployés dans JBOSS Fuse

<?xml version="1.0" encoding="UTF-8"?> 
<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0"> 
    <feature name="${project.artifactId}" description="${project.description}" version="${project.version}"> 
     ... 
     <feature>camel-beanio</feature> 
     ... 

     <bundle>mvn:${project.groupId}/abc-common/${common-version}</bundle> 
     <bundle>mvn:${project.groupId}/abc-service/${project.version}</bundle> 

    </feature> 
</features> 

Lorsque j'installe la principale caractéristique, il charge abc-service paquet avant camel-beanio fonction et les routes en abc-service qui utilise beanio dataformat échoue.

J'ai fait quelques recherches sur google et trouvé des options comme, start-level, dependency, prerequesite ..etc. Toutefois, l'espace de noms actuellement configuré ne permet aucun de ces attributs.

J'ai également essayé de changer l'espace de nom de xml comme prévu dans this example hosted on Github. Mais il était à l'origine une autre erreur comme

Causée par: java.lang.IllegalStateException: Impossible de trouver la ressource: /org/apache/karaf/features/karaf-features-1.3.0.xsd

Alors, que pourrait-on faire pour s'assurer que la fonctionnalité camel-beanio s'installe avant le service?

Répondre

0

Vous devriez être en mesure d'écrire un fichier de fonctionnalités comme ceci:

<features> 
<feature name "nameOfYourProject"> 
<bundle dependency="true">mvn:org.apache.camel/camel-beanio/2.17.0</bundle> 
..your abc bundle 
.. 
</feature> 
</features> 

Mais je vous conseille sans doute de créer un dossier appelé fonctionnalité sous/main et de créer un feature.xml. modifier manuellement que vos dépendances de bundle tels que:

<features> 
    <feature name="${project.artifactId}"> 
    <bundle dependency="true">mvn:org.apache.camel/camel-core/2.17.0</bundle> 
    <bundle dependency="true">mvn:org.apache.camel/camel-blueprint/2.17.0</bundle> 
    <bundle dependency="true">mvn:org.apache.camel/camel-rabbitmq/2.17.0</bundle> 
    <bundle dependency="true">mvn:org.apache.camel/camel-jackson/2.17.0</bundle> 
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.4</bundle> 
    <bundle dependency="true">mvn:commons-codec/commons-codec/1.10</bundle> 
    <bundle dependency="true">wrap:mvn:org.apache.axis/axis/1.4</bundle> 
    <bundle dependency="true">wrap:mvn:org.apache.axis/axis-jaxrpc/1.4</bundle> 
    <bundle dependency="true">wrap:mvn:org.apache.axis/axis-saaj/1.4</bundle> 
    <bundle dependency="true">wrap:mvn:axis/axis-wsdl4j/1.5.1</bundle> 
    <bundle dependency="true">wrap:mvn:commons-discovery/commons-discovery/0.4</bundle> 
    <bundle dependency="true">wrap:mvn:javax.xml/jaxrpc-api/1.1</bundle> 
    <bundle dependency="true">mvn:org.slf4j/slf4j-api/1.7.13</bundle> 
    <bundle dependency="true">mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle> 
    </feature> 
</features> 

Ajouter à votre section plug-in dans votre pom:

<!-- to generate the karaf feature file from feature template file --> 
     <plugin> 
     <groupId>org.apache.karaf.tooling</groupId> 
     <artifactId>karaf-maven-plugin</artifactId> 
     <version>4.0.2</version> 
     <configuration> 
      <aggregateFeatures>false</aggregateFeatures> 
      <includeTransitiveDependency>false</includeTransitiveDependency> 
      <addBundlesToPrimaryFeature>true</addBundlesToPrimaryFeature> 
      <addTransitiveFeatures>false</addTransitiveFeatures> 
     </configuration> 
     <executions> 
      <execution> 
      <id>plugin-feature</id> 
      <goals> 
       <goal>features-generate-descriptor</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

Ensuite, lorsque vous exécutez l'installation de nettoyer le fichier de fonction sera généré dans votre dossier cible .