You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "John D. Ament (JIRA)" <ji...@apache.org> on 2013/05/08 01:39:16 UTC

[jira] [Commented] (TOMEE-599) TomEE exposing Remote JNDI names not per

    [ https://issues.apache.org/jira/browse/TOMEE-599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651438#comment-13651438 ] 

John D. Ament commented on TOMEE-599:
-------------------------------------

EJB EG has confirmed that the naming should be the same.  It's officially going to be clarified in a later version of the EJB spec (so it seems).
                
> TomEE exposing Remote JNDI names not per 
> -----------------------------------------
>
>                 Key: TOMEE-599
>                 URL: https://issues.apache.org/jira/browse/TOMEE-599
>             Project: TomEE
>          Issue Type: Bug
>          Components: Compliance Checks
>    Affects Versions: 1.5.0
>            Reporter: John D. Ament
>
> Section 4.4.2.2 of the EJB 3.1 spec states that the following JNDI locations should be populated for "other client views," which includes remote.  TomEE is instead exposing it as BeanName + Remote.
> This was shown with the following test material
> @Remote
> public interface RemoteDatabaseIntegrator {
> 	public void runQuery(String query) throws SQLException;
> }
> @Remote(RemoteDatabaseIntegrator.class)
> @Stateless(name="RemoteDatabaseIntegrator")
> public class RemoteDatabaseIntegratorImpl implements RemoteDatabaseIntegrator {
> 	@Resource(name="jdbc/AppDS")
> 	private DataSource ds;
> 	private Connection conn;
> 	@PostConstruct
> 	public void init() throws SQLException {
> 		this.conn = ds.getConnection();
> 	}
> 	@PreDestroy
> 	public void cleanup() throws SQLException {
> 		this.conn.close();
> 	}
> 	public void runQuery(String query) throws SQLException {
> 		this.conn.createStatement().execute(query);
> 	}
> }
> @RunWith(Arquillian.class)
> @RunAsClient
> public class RemoteDatabaseIntegratorTest {
> 	@Deployment(testable=false)
> 	public static JavaArchive createTestArchive() {
> 		return ShrinkWrap.create(JavaArchive.class,"test.jar")
> 				.addClasses(RemoteDatabaseIntegrator.class,RemoteDatabaseIntegratorImpl.class);
> 	}
> 	
> 	@ArquillianResource
> 	private URL deploymentURL;
> 	
> 	private static final String JNDI_LOC = "RemoteDatabaseIntegratorRemote";
> 	
> 	@Test
> 	public void testDbServiceInjectionFailure() throws Exception{
> 		Properties p = new Properties();
> 		p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
> 		String providerUrl = String.format("http://%s:%s/tomee/ejb",deploymentURL.getHost(),deploymentURL.getPort());
> 		p.put("java.naming.provider.url", providerUrl);
> 		Context context = new InitialContext(p);
> 		RemoteDatabaseIntegrator dbIntegrator = (RemoteDatabaseIntegrator)context.lookup(JNDI_LOC);
> 		dbIntegrator.runQuery("select 1");
> 	}
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira