Hello,

Documentation on moving from spring-dm to aries is difficult to find. I took
two different approaches that I would like to discuss/verify:

The first one using some hints I found on this forum regarding using:
- org.apache.aries.blueprint/org.apache.aries.blueprint.spring
- org.apache.aries.blueprint/org.apache.aries.blueprint.spring.extender

I simply changed Karaf's feature file:

<feature name="our-feature" version="1.0.0-SNAPSHOT" description="Our
Feature">
        <feature version="3.1.4.RELEASE">spring</feature>
-       <feature version="1.2.1">spring-dm</feature>
+      <feature>aries-blueprint</feature>

+     
<bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring/0.3.0</bundle>
+     
<bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring.extender/0.3.0</bundle>
        <bundle>our-bundle</bundle>
</feature>

This appear's to work apart from some error messages:
[Error] blueprint-spring-extender5566039697982863264.xml:6:81:
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration
can be found for element 'bean:import'.
Possibly due to the fact that we are using a lower spring version (3.1) that
is declared (4.2) in the generated blueprint xml:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:bean="http://www.springframework.org/schema/beans";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd";>
        <bean:import
resource="bundle://66.0:0/META-INF/spring/base-context-osgi.xml"/>
        <bean:import
resource="bundle://66.0:0/META-INF/spring/bundle-context-processing.xml"/>
        <bean:import
resource="bundle://66.0:0/META-INF/spring/bundle-context.xml"/>
        <bean:import
resource="bundle://66.0:0/META-INF/spring/server-context-integration.xml"/>
</blueprint>

As i stated, apart from the error messages the bundles are all started and
active. The only downside is that we are still using spring configuration.
The spring-dm configuration files are separated from other spring wiring
which brings me the second approach:

Migrate the spring-dm configuration files to blueprint configuration files
(including location OSGI-INF/blueprint). Also converting spring properties
to aries properties
(https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Deploying_into_the_Container/files/DeployCamel-OsgiConfigProps.html).

The result is pure blueprint configuration files... at least for the
definitions. We're left with references to non blueprint beans. Since we use
spring batch and need those (spring) beans to be exposed as a service we
need a mechanism to resolve those beans in a blueprint context.

I tried adding 
- org.apache.aries.blueprint/org.apache.aries.blueprint.spring
- org.apache.aries.blueprint/org.apache.aries.blueprint.spring.extender
but this gave me not what I was hoping for.

I have not found any documentation on using these bundles and hopefully
someone can provide me with some more information.



--
View this message in context: 
http://karaf.922171.n3.nabble.com/Migrating-from-spring-dm-to-aries-blueprint-tp4050120.html
Sent from the Karaf - User mailing list archive at Nabble.com.

Reply via email to