0 Replies Latest reply on Mar 26, 2013 8:19 AM by Marco Rietveld

    Using org.jboss.naming.remote.client.InitialContextFactory to back injection of @Resource

    Marco Rietveld Novice

      I'm running a JMS test (@RunAsClient) on a managed instance of jboss as 7 (7.1.1.Final).


      What I noticed was that if I placed a jndi.properties file in my src/test/resources with the following:




      that this would fail, because the InitialContext (used in the CommonDeployableContainer), is being created before the server is up and running -- intializing the ManagedDeployableContainer (which extends the CommonDeployableContainer) is of course one of the steps necessary to get the server up and running.


      However,  @Resource injections, which are processed via the ResourceInjectionEnricher, are partially based on the InitialContext content.


      So @Resource injections like the following would fail:


          @Resource(mappedName = "jms/queues/jbpmQueue")
          public Queue testQueue;


          @Resource(mappedName = "jms/RemoteConnectionFactory")
          public ConnectionFactory factory;


      What would be great, is if there was a way to inject JNDI properties and reinitialize the InitialContext in, for example, a ServerSetupTask -- thus allowing me to use  @Resource annotations.


      This is sort of a developer discussion and sort of a user discussion, but I figured I'd "err on the side of caution" and post it in the user forum.





      PS. I've also created ARQ-1362 because it does seem like injection works for in-jvm Arquillian tests with JMS resources. Existing tests that inject JMS resources don't seem to work with 1.0.3.Final -- hopefully it wasn't something in my configuration that I missed.