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 2012/11/22 01:58:58 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=13502499#comment-13502499 ]
John D. Ament commented on TOMEE-599:
-------------------------------------
BTW, when popping in this for the JNDI location (as specified in the spec)
private static final String JNDI_LOC = "java:module/RemoteDatabaseIntegrator!com.tad.arquillian.chp5.remoteejb.RemoteDatabaseIntegrator";
I get does not exist.
> 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