Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.3.4. Definieren eines Feature für die Applikation
3.4.1. Warum brauchen Sie ein Feature?
Ein OSGi-Bündel ist keine praktische Bereitstellungseinheit für die Verwendung mit dem Red Hat JBoss Fuse Container. Applikationen bestehen in der Regel aus mehreren OSGi-Bündeln und komplexe Applikationen können aus einer sehr großen Anzahl an Bündeln bestehen. Für das gleichzeitige Deployment oder Undeployment mehrerer OSGi-Bündel benötigen Sie in der Regel einen Bereitstellungsmechanismus, der dies unterstützt.
Apache Karaf Features wurden entworfen, um dieses Problem anzugehen. Ein Feature fasst mehrere OSGi-Bündel in eine einzelne Bereitstellungseinheit zusammen. Wenn als ein Feature definiert, können Sie simultan das Deployment und Undeployment einer ganzen Collection von Bündeln ausführen.
3.4.2. Was gehört in ein Feature
Ein Feature sollte mindestens die grundlegende Collection von OSGi-Bündeln enthalten, die den Kern Ihrer Applikation ausmachen. Außerdem könnten Sie einige der Abhängigkeiten Ihrer Applikationsbündel festlegen, für den Fall, dass diese nicht vorab im Container bereitgestellt werden.
Die Entscheidung darüber, was Ihr benutzerdefiniertes Feature enthalten soll, hängt auch davon ab, welche Bündel und Features vorab in Ihrem Container bereitgestellt sind. Die Verwendung eines standardisierten Containers wie Red Hat JBoss Fuse macht diese Entscheidung einfacher.
3.4.3. Bereitstellungsoptionen
Es gibt ein paar verschiedene Optionen für das Bereitstellen von Funktionen:
- Bereitstellung während des Betriebs—die einfachste Bereitstellungsoption; legen Sie einfach die XML-Features-Datei direkt im Hot-Deploy-Verzeichnis zur Bereitstellung während des Betriebs ab,
InstallDir/deploy
. - Hinzufügen einer Repository URL—Sie können dem Red Hat JBoss Fuse Container mitteilen, wo er die Features Repository Datei findet, indem Sie den
features:addUrl
Konsolenbefehl verwenden (siehe Hinzufügen der lokalen Repository URL zum Features-Dienst). Sie können das Feature dann zu jeder Zeit mit demfeatures:install
Konsolenbefehl installieren. - Durch ein Fuse Fabric Profil—Sie können die Managementkonsole für die Bereitstellung eines Feature in einem Fuse Fabric Profil verwenden.
Weitere Informationen zu den Optionen der Feature-Bereitstellung finden Sie unter Bereitstellen eines Feature.
3.4.4. Features und Fuse Fabric
Ein Feature ist eine besonders praktische Bereitstellungseinheit für die Verwendung mit Fuse Fabric. Ein Fuse Fabric Profil besteht in der Regel aus einer Liste von Features und einer Collection verwandter Konfigurationseinstellungen. Daher ermöglicht ein Fuse Fabric Profil die Bereitstellung einer komplett konfigurierten Applikation an einen beliebigen Container in einer einzelnen atomaren Operation.
3.4.5. Erstellen eines benutzerdefinierten Features Repository
Erstellen Sie ein Unterverzeichnis, das das Features-Repository enthalten soll. Unter dem
get-started
Projektverzeichnis erstellen Sie alle Verzeichnisse im folgenden Pfad:
get-started/features/src/main/resources/
Verwenden Sie unter dem
get-started/features/src/main/resources
Verzeichnis einen Texteditor, um die get-started.xml
Datei zu erstellen und fügen Sie die folgenden Inhalte hinzu:
<?xml version="1.0" encoding="UTF-8"?> <features name="get-started"> <feature name="get-started-basic"> <bundle>mvn:org.fusesource.example/cxf-basic/1.0-SNAPSHOT</bundle> <bundle>mvn:org.fusesource.example/camel-basic/1.0-SNAPSHOT</bundle> </feature> <feature name="get-started-cxf"> <bundle>mvn:org.fusesource.example/cxf-basic/1.0-SNAPSHOT</bundle> </feature> </features>
Verwenden Sie unter dem
get-started/features/
Verzeichnis einen Texteditor, um die Maven POM-Datei pom.xml
zu erstellen und fügen Sie die folgenden Inhalte hinzu:
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.fusesource.example</groupId> <artifactId>get-started</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Getting Started Feature Repository</name> <build> <plugins> <!-- Attach the generated features file as an artifact, and publish to the maven repository --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.5</version> <executions> <execution> <id>attach-artifacts</id> <phase>package</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <artifacts> <artifact> <file>target/classes/get-started.xml</file> <type>xml</type> <classifier>features</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
3.4.6. Installation des Features Repository
Sie müssen das Features Repository in Ihrem lokalen Maven Repository installieren, damit dieses vom Red Hat JBoss Fuse Container aufgefunden werden kann. Um das Features Repository zu installieren, öffnen Sie eine Befehlszeile, wechseln Sie in das
get-started/features
Verzeichnis und geben Sie den folgenden Befehl ein:
cd features mvn install
3.4.7. Bereitstellen des benutzerdefinierten Feature
Um das
get-started-basic
Feature im Container bereitzustellen, führen Sie die folgenden Schritte durch:
- Sind die
cxf-basic
andcamel-basic
Bündel bereits im JBoss Fuse Container installiert, so müssen Sie diese zuerst deinstallieren. Finden Sie mit demlist
Befehl die Bündel-IDs für diecxf-basic
undcamel-basic
Bündel und deinstallieren Sie diese dann beide mittels Konsolenbefehluninstall BundleID
. - Ehe Sie von einem Features Repository auf Features zugreifen können, müssen Sie dem Container mitteilen, wo das Features Repository zu finden ist. Fügen Sie dem Container die URL des Features Repository mit dem folgenden Konsolenbefehl hinzu:
JBossFuse:karaf@root> features:addurl mvn:org.fusesource.example/get-started/1.0-SNAPSHOT/xml/features
Sie können prüfen, ob der Container von den neuen Features weiß, indem Sie den Konsolenbefehlfeatures:list
eingeben. Falls nötig, können Sie denfeatures:refreshurl
Konsolenbefehl eingeben, der den Container zum erneuten Lesen seiner Features Repositorys zwingt. - Um die
get-started-basic
Funktion zu installieren, geben Sie den folgenden Konsolenbefehl ein:JBossFuse:karaf@root> features:install get-started-basic
- Nachdem Sie ein paar Sekunden auf den Start der Bündel gewartet haben, können Sie die Applikation wie in »Testen der Route mit dem WS-Client« beschrieben testen.
- Um die Funktion zu deinstallieren, geben Sie den folgenden Konsolenbefehl ein:
JBossFuse:karaf@root> features:uninstall get-started-basic