2017-07-22 2 views
1

Ich habe eine ältere App in Java 7 mit Spring 3.2.18 geschrieben, die auf Karaf 2.4.4 zusammen mit Spring-DM läuft. Ich habe vor, zu neueren Versionen von Spring, Java und Karaf zu wechseln.Migration von Spring-DM & Spring 3 nach Blueprint & Spring 4 auf Karaf

Ich weiß, dass Spring-dm nicht unterstützt wird und ich sollte zu Blueprint wechseln, aber ich bin mir nicht sicher, ob ich dann OSGI-Beans im Spring-Kontext wie Spring-dm laden könnte. Unterstützt Karaf 2.4.4 es?

Ich möchte Quellcode nicht zu viel ändern und immer noch @Autowired verwenden, wie ich gerade benutze.

Als ersten Schritt plane ich Spring-dm durch Blueprint zu ersetzen, nächster Schritt wäre, Spring 3 zu Spring 4 zu aktualisieren. Ist es gültige Ansatz?

Antwort

1

Karaf verwendet standardmäßig Aries Blueprint, der keine Spring Beans unterstützt, Sie können jedoch blueprint-maven-plugin verwenden, wodurch eine Datei blueprint.xml aus annotierten Klassen erstellt wird.

Aber wenn Ihr Code eine starke Abhängigkeit mit Spring hat, wie SpringMVC, um Servlets bereitzustellen, können Sie Gemini Blueprint verwenden, der der Nachfolger von Spring-DM ist und Spring bis Version 4.3.x unterstützt, aber ich muss Sie warnen, es kann schwierig sein, es mit Karaf zu arbeiten, besonders wenn Sie SpringMVC verwenden.

+0

Es gibt eine Erweiterung zu Aries Blueprint, die Spring/Spring-DM zu unterstützen scheint, aber es ist nicht dokumentiert: https://github.com/apache/aries/tree/trunk/blueprint/blueprint-spring –

+0

ist es wert sagend, dass blueprint-maven-plugin wahrscheinlich die Unterstützung von Frühlings-Anmerkungen fallen lassen wird: http://aries.apache.org/modules/blueprint-maven-plugin.html#spring-supported-in-version-x-probably-droped- in-next-major-versions – isco

+0

Es sieht aus wie Karaf 3 verwendet Gemini Extender standardmäßig https://github.com/apache/karaf/blob/karaf-3.0.8/assemblies/features/spring/src/main/feature/ feature.xml Da ich den Quellcode nicht zu sehr ändern möchte, werde ich versuchen, SpringDM xml context configuration in Gemini Blueprint zu ändern. –

Verwandte Themen