allgemeines zu OSGi

just-in

Grünschnabel
Hi,

ich bin grad dran etwas mit osgi herum zu experimentieren. dazu stellt sich mir folgende frage. ich habe ein bundle was im osgi läuft. ist es möglich dieses bundle zu replizieren um es zu modifizieren? also so das das "original" bundle einfach weiter läuft und ich erstmal die modifikation an einem anderen bundle vornehme und falls alles klappt das "original" bundle ersetz?

:confused:

mfg
justin
 
Hallo,

dafür sind Bundle Versions Attribute da. Damit kannst du gleichzeitig Bundles in unterschiedlichen Versionen betreiben. Der Verwender deines Bundles kann dann über Require-Bundle bzw. Require-Package auf die passenden Versionen verweisen.

Gruß Tom
 
erstmal danke für die schnelle antwort,

ok aber das bedeutet ja das ich das bundle einfach mit zwei verschiedenen versionen starte. aber ich will halt am besten per befehl das eine bundle replizieren. ist das möglich
 
Aber das ist doch genau das was Tom schreibt. Sobald du die Modifikation vornimmst, musst du die Version des modifizierten Bundles ändern (du tust es ja implizit), da die Bundles dann nicht mehr Bytecodekompatibel sind.

Desweiteren musst du "wenn alles klappt" definieren. Wenn du Sachen an dem Bundle modifizierst, gibt es sicher Testcases, nen Buildprozess usw. D.h. die Entscheidung ob etwas korrekt läuft oder nicht würde ich definitiv nicht in einem laufenden Produktivsystem treffen wollen. Daher versteh ich nicht so ganz worauf du hinaus willst.

Gruß
Ollie
 
naja mein problem ist folgendermassen zu beschreiben:

nehmen wir an wir haben ein bundle welches einen definierten string zurückgibt, wie "hallo welt". nun habe ich ein zweites bundle mit dem ich das erste modifizieren kann indem ich sage ok der string ist nun hello world!. jetzt wollte ich eigentlich erstmal zur laufzeit das alte bundle "kopieren" um es zu modifizieren und wenn alles klappt halt erstetzen.
die änderung will ich ja nicht in meiner entwicklungsumgebeung machen und dann das veränderte bundle mit einer anderen versionsnummer neu laden? will das "replizieren" direkt auf der equinox console durchführen. ist das machbar?

versteht ihr was ich ungefähr mein ;)

danke
justin
 
Sowas nennt man Konfiguration. Um Strings auszutauschen brauchst du doch nicht das Bundle modifizieren. Schreib das zeug in ein Propertiesfile, in eine DB o.ä. Ansonsten schreit sowas halt immer nach JMX. Aber sowas ist definitiv keine Anforderung, die OSGi als Standard erschlagen will bzw. sollte.

Gruß
Ollie
 
Zurück