Nice job, 3.1.2-SNAPSHOT passes in both Maven and IntelliJ without the additional prop.
David Blevins wrote: > > I think I have a fix for this issue that will work without the > openejb.tempclassoader.skip workaround. New 3.1.2-SNAPSHOT jars have > been published to http://repository.apache.org/snapshots/ > > Can you give that version a try without the flag and see if things > work for you? > > -David > > On Jun 15, 2009, at 8:42 PM, burroinquieto wrote: > >> >> No problem. >> http://www.nabble.com/file/p24047145/parent-pom.xml parent-pom.xml >> http://www.nabble.com/file/p24047145/ejb-pom.xml ejb-pom.xml >> >> Let me know if you need anything else... >> >> >> David Blevins wrote: >>> >>> >>> On Jun 15, 2009, at 7:57 PM, burroinquieto wrote: >>> >>>> >>>> Adding contextProps.put("openejb.tempclassloader.skip", >>>> "annotations") seems >>>> to have done the trick. >>>> >>>> Thanks for the help. By the way, I noticed in the linked docs that >>>> you've >>>> never had the pleasure of encountering this in IntelliJ or Maven. >>>> Sorry to >>>> break the bad news, but I'm able to reproduce this in both IntelliJ >>>> 8.1.2 >>>> #9852 and Maven 2.0.10 with JRE 1.5.0_16. >>> >>> Really, fantastic. We have an example in our build and it passes >>> fine >>> without this flag -- makes it hard to test workarounds. I'd love to >>> get my hands on a pom.xml that does fail so we could add it to the >>> test suite. Is it possible you could share it? >>> >>> >>> -David >>> >>> >>>> >>>> >>>> >>>> David Blevins wrote: >>>>> >>>>> >>>>> On Jun 11, 2009, at 8:38 AM, burroinquieto wrote: >>>>> >>>>>> >>>>>> I wasn't able to get this working with the 3.1.1 release. >>>>>> >>>>>> I configured a simple test case as follows: >>>>>> >>>>>> @LocalClient >>>>>> public class StockEJBLocalTest extends TestCase { >>>>>> >>>>>> private Context context; >>>>>> >>>>>> @EJB >>>>>> private StockEJBLocal stockEJBLocal; >>>>>> >>>>>> public void setUp() throws Exception { >>>>>> initContext(); >>>>>> } >>>>>> >>>>>> private void initContext() { >>>>>> >>>>>> Properties contextProps = new Properties(); >>>>>> ResourceBundle rb = ResourceBundle.getBundle("datasource"); >>>>>> Enumeration props = rb.getKeys(); >>>>>> >>>>>> String dsName = null; >>>>>> while (props.hasMoreElements()) { >>>>>> >>>>>> String prop = (String)props.nextElement(); >>>>>> if (dsName == null) { >>>>>> dsName = StringUtils.substringBefore(prop, "."); >>>>>> } >>>>>> >>>>>> contextProps.put(prop, rb.getString(prop)); >>>>>> } >>>>>> >>>>>> contextProps.put(dsName, "new://Resource?type=DataSource"); >>>>>> contextProps.put(Context.INITIAL_CONTEXT_FACTORY, >>>>>> "org.apache.openejb.client.LocalInitialContextFactory"); >>>>>> >>>>>> try { >>>>>> >>>>>> context = new InitialContext(contextProps); >>>>>> context.bind("inject", this); >>>>>> >>>>>> } catch (Throwable th) { >>>>>> throw new RuntimeException(th); >>>>>> } >>>>>> } >>>>>> >>>>>> ... >>>>>> } >>>>>> >>>>>> Resulting output and stack trace: >>>>>> >>>>>> INFO - Jndi(name=StockEJBLocal) --> Ejb(deployment-id=StockEJB) >>>>>> INFO - Created Ejb(deployment-id=StockEJB, ejb-name=StockEJB, >>>>>> container=Default Stateless Container) >>>>>> INFO - Deployed Application(path=classpath.ear) >>>>>> >>>>>> java.lang.RuntimeException: javax.naming.NamingException: Unable >>>>>> to >>>>>> find >>>>>> injection meta-data for >>>>>> org.dpage.stocksloth.ejb.StockEJBLocalTest. >>>>>> Ensure >>>>>> that class was annotated with @org.apache.openejb.api.LocalClient >>>>>> and was >>>>>> successfully discovered and deployed. See >>>>>> http://openejb.apache.org/3.0/local-client-injection.html >>>>>> at >>>>>> org >>>>>> .dpage >>>>>> .stocksloth >>>>>> .ejb.StockEJBLocalTest.initContext(StockEJBLocalTest.java: >>>>>> 63) >>>>>> at >>>>>> org >>>>>> .dpage >>>>>> .stocksloth.ejb.StockEJBLocalTest.setUp(StockEJBLocalTest.java: >>>>>> 34) >>>>>> at >>>>>> com >>>>>> .intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: >>>>>> 40) >>>>>> Caused by: javax.naming.NamingException: Unable to find injection >>>>>> meta-data >>>>>> for org.dpage.stocksloth.ejb.StockEJBLocalTest. Ensure that class >>>>>> was >>>>>> annotated with @org.apache.openejb.api.LocalClient and was >>>>>> successfully >>>>>> discovered and deployed. See >>>>>> http://openejb.apache.org/3.0/local-client-injection.html >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .openejb >>>>>> .client.LocalInitialContext.inject(LocalInitialContext.java: >>>>>> 251) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .openejb.client.LocalInitialContext.bind(LocalInitialContext.java: >>>>>> 225) >>>>>> at javax.naming.InitialContext.bind(InitialContext.java:359) >>>>>> at >>>>>> org >>>>>> .dpage >>>>>> .stocksloth >>>>>> .ejb.StockEJBLocalTest.initContext(StockEJBLocalTest.java: >>>>>> 60) >>>>>> ... 14 more >>>>>> >>>>>> Adding the empty META-INF/ejb-jar.xml and META-INF/application- >>>>>> client.xml >>>>>> files didn't seem to make any difference. Any ideas? >>>>> >>>>> >>>>> Your usage looks good. I did encounter something like this in >>>>> Eclipse >>>>> a few days post-release. It seems that in Eclipse we sometimes get >>>>> two copies of the @LocalClient annotation loaded and as a result >>>>> nothing gets discovered as we're looking for usage of the >>>>> LocalClient >>>>> from classloader one and the application is using LocalClient from >>>>> classloader two. A workaround for this is to boot OpenEJB with the >>>>> flag 'openejb.tempclassloader.skip=annotations' >>>>> >>>>> On a related note I just noticed the link in the error message >>>>> still >>>>> didn't exist! Ooops! I went ahead and drafted up that page and >>>>> included the above information. >>>>> >>>>> http://cwiki.apache.org/OPENEJBx30/local-client-injection.html >>>>> >>>>> It should sync to the openejb.apache.org/ section in an hour. >>>>> >>>>> Definitely let us know if this does or does not work. We >>>>> definitely >>>>> want to make sure this feature operates fine in all environments >>>>> and >>>>> is properly documented. >>>>> >>>>> Thanks for reporting this! >>>>> >>>>> -David >>>>> >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/MDB-Listening-on-external-ActiveMQ-broker-tp23470573p24046803.html >>>> Sent from the OpenEJB User mailing list archive at Nabble.com. >>>> >>>> >>> >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/MDB-Listening-on-external-ActiveMQ-broker-tp23470573p24047145.html >> Sent from the OpenEJB User mailing list archive at Nabble.com. >> >> > > > -- View this message in context: http://www.nabble.com/MDB-Listening-on-external-ActiveMQ-broker-tp23470573p24115811.html Sent from the OpenEJB User mailing list archive at Nabble.com.