John D. Ament created TOMEE-599:
-----------------------------------
Summary: 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