2016-05-16 10 views
0
<feature name="featureA" version="1.1.8"> 
    <bundle start-level="80">mvn:org.antlr/antlr4-runtime/4.5.3</bundle> 
</feature> 
<feature name="featureB" version="1.1.8"> 
    <bundle start-level="80">wrap:mvn:org.antlr/antlr4-runtime/4.0</bundle> 
</feature> 

Ich habe zwei Funktionen, die die antlr4-Laufzeit verwenden, aber verschiedene Versionen davon. In Runtime-Klassen für antlr werden ab Version 4.5.3 für beide Features geladen. Können wir karaf irgendwie so konfigurieren, dass eine Version der gleichen Bibliothek für eine Funktion und die andere für die zweite Funktion verwendet wird?Karaf: zwei verschiedene Funktionen hängen von der gleichen Bibliothek mit verschiedenen Versionen ab

Antwort

2

Für den Karaf-Container ist keine explizite Konfiguration erforderlich. Beim Erstellen eines Bündels müssen Sie die spezifischen Versionen (Paket antlr) im konsumierenden Bundle (das Paket, das verwendet) angeben. Seit Karaf (OSGi-Container) akzeptiert die Bereitstellung desselben Bundles mit verschiedenen Versionen. Dies ist einer der Hauptvorteile von OSGI-Containern.

0

Sie sollten sich die anderen Gläser ansehen, die in Ihren Funktionen enthalten sind. Wenn Sie in der Manifestdatei Ihrer Jars eine Abhängigkeit zu einem Paket von org.antlr 4.0 deklarieren, bedeutet dies, dass die Version 4.0 die Mindestversion ist, die für die Version 4.5.3 geeignet ist. Sie können sich diese Seite ansehen, wenn Sie weitere Informationen benötigen: osgi-version