You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by Charles Moulliard <ch...@gmail.com> on 2013/06/25 16:26:00 UTC
Fwd: Inject constructor using Blueprint
Maybe a Karaf guy could answer to my question ?
---------- Forwarded message ----------
From: Charles Moulliard <ch...@gmail.com>
Date: Tue, Jun 25, 2013 at 8:15 AM
Subject: Inject constructor using Blueprint
To: dev@aries.apache.org
Hi,
Aries Blueprint project allows to inject constructors parameters using
BeanArgumentImpl. Here is an example of such usage :
BeanMetadataImpl beanMetadata = (BeanMetadataImpl)
context.createMetadata(BeanMetadata.class);
beanMetadata.setClassName("org.mycompany.MyFactoryBean");
beanMetadata.setFactoryMethod("doSomething");
beanMetadata.setId(id);
BeanArgumentImpl argument = new BeanArgumentImpl();
argument.setIndex(0);
argument.setValue(createValue(context, id));
beanMetadata.addArgument(argument);
Unfortunately, with release 1.0 of Apache Blueprint, this class has been
packaged with blueprint - parser which is a jar and not a bundle and even
if I use wrap to generate a bundle, it cannot be used as such as we get on
Apache Karaf a classcast exception
java.lang.ClassCastException:
org.apache.aries.blueprint.reflect.BeanMetadataImpl cannot be cast to
org.apache.aries.blueprint.reflect.BeanMetadataImpl
at
org.kie.aries.blueprint.namespace.ReleaseIdElementParser.parseElement(ReleaseIdElementParser.java:47)[120:org.kie.aries.blueprint:6.0.0.20130624-2122]
Question : How can we inject constructors parameters with Aries Blueprint
1.0 without using classes packaged under blueprint-parser ?
Regards,
--
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
--
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
Re: Inject constructor using Blueprint
Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi Charles,
isn't it something like this:
<bean id="accountOne" class="org.apache.aries.simple.Account">
<argument value="1"/>
</bean>
regards, Achim
2013/6/25 Charles Moulliard <ch...@gmail.com>
> Maybe a Karaf guy could answer to my question ?
>
> ---------- Forwarded message ----------
> From: Charles Moulliard <ch...@gmail.com>
> Date: Tue, Jun 25, 2013 at 8:15 AM
> Subject: Inject constructor using Blueprint
> To: dev@aries.apache.org
>
>
> Hi,
>
> Aries Blueprint project allows to inject constructors parameters using
> BeanArgumentImpl. Here is an example of such usage :
>
> BeanMetadataImpl beanMetadata = (BeanMetadataImpl)
> context.createMetadata(BeanMetadata.class);
> beanMetadata.setClassName("org.mycompany.MyFactoryBean");
> beanMetadata.setFactoryMethod("doSomething");
> beanMetadata.setId(id);
>
> BeanArgumentImpl argument = new BeanArgumentImpl();
> argument.setIndex(0);
> argument.setValue(createValue(context, id));
> beanMetadata.addArgument(argument);
>
> Unfortunately, with release 1.0 of Apache Blueprint, this class has been
> packaged with blueprint - parser which is a jar and not a bundle and even
> if I use wrap to generate a bundle, it cannot be used as such as we get on
> Apache Karaf a classcast exception
>
> java.lang.ClassCastException:
> org.apache.aries.blueprint.reflect.BeanMetadataImpl cannot be cast to
> org.apache.aries.blueprint.reflect.BeanMetadataImpl
> at
>
> org.kie.aries.blueprint.namespace.ReleaseIdElementParser.parseElement(ReleaseIdElementParser.java:47)[120:org.kie.aries.blueprint:6.0.0.20130624-2122]
>
> Question : How can we inject constructors parameters with Aries Blueprint
> 1.0 without using classes packaged under blueprint-parser ?
>
> Regards,
>
> --
> Charles Moulliard
> Apache Committer / Architect @RedHat
> Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
>
>
>
>
> --
> Charles Moulliard
> Apache Committer / Architect @RedHat
> Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
>
--
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home>
Commiter & Project Lead
blog <http://notizblog.nierbeck.de/>