Any luck with this Charles? For others: We spent some time hacking and debugging this at Devoxx, but were not able to implement the solution before we had to part ways.
----- Original Message ----- > From: "Jozef Hartinger" <[email protected]> > To: "Charles Moulliard" <[email protected]> > Cc: [email protected], "Antoine Sabot-Durand" <[email protected]>, > "Jason Porter" <[email protected]>, > "Peter Muir" <[email protected]> > Sent: Monday, November 11, 2013 1:01:04 AM > Subject: Re: [weld-dev] Issue with weld 2.1.0.Final on OSGI > > Hi Charles, > > Weld uses Pax CDI provided BundleResourceLoader[1] to load classes in an > OSGi bundle. It loads only those that are discovered by BeanScanner[2]. > > When you call getBeans() Weld does not load the parameter class anyhow > since you already provided a loaded class. Weld will try to match the > type you pass to getBeans() with the types of beans it had loaded. > > Jozef > > [1] > https://github.com/ops4j/org.ops4j.pax.cdi/blob/master/pax-cdi-weld/src/main/java/org/ops4j/pax/cdi/weld/impl/bda/BundleResourceLoader.java > [2] > https://github.com/ops4j/org.ops4j.pax.cdi/blob/master/pax-cdi-spi/src/main/java/org/ops4j/pax/cdi/spi/scan/BeanScanner.java > > On 11/08/2013 07:11 PM, Charles Moulliard wrote: > > Hi, > > > > The following code which is working fine and returns a bean when we run > > Junit Test with DeltaSpike does not work when Weld 2.1.0.Final is > > deployed on Karaf (OSGI v4.3) with Pax-CDI. Apparently the bean is not > > retrieved when we call "beanManager.getBeans(" > > > > > > protected CamelContext getCamelContext(String context, BeanManager > > beanManager) { > > if (camelContextMap == null) { > > Set<Bean<?>> beans = > > beanManager.getBeans(CamelContextMap.class, new AnyLiteral()); // return > > null > > Bean<?> bean = beanManager.resolve(beans); // return null > > CreationalContext<?> creationalContext = > > beanManager.createCreationalContext(bean); > > camelContextMap = (CamelContextMap) > > beanManager.getReference(bean, bean.getBeanClass(), creationalContext); > > ObjectHelper.notNull(camelContextMap, "Could not resolve > > CamelContextMap"); > > } > > return camelContextMap.getCamelContext(context); > > } > > > > Question : How does WeldContainer loads the class when we use getBeans > > as I suspect that we have a problem with the classloader used ? > > > > Regards, > > > > Charles > > _______________________________________________ > > weld-dev mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/weld-dev > > _______________________________________________ weld-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/weld-dev
