You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/09/27 20:13:49 UTC

svn commit: r1176498 - in /openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ conta...

Author: rmannibucau
Date: Tue Sep 27 18:13:48 2011
New Revision: 1176498

URL: http://svn.apache.org/viewvc?rev=1176498&view=rev
Log:
little check when appModule is initialized

Added:
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/JndiConstants.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/resource/appresource.openejb.xml
    openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/JndiConstants.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/JndiConstants.java?rev=1176498&r1=1176497&r2=1176498&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/JndiConstants.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/JndiConstants.java Tue Sep 27 18:13:48 2011
@@ -1,3 +1,19 @@
+/*
+ *     Licensed to the Apache Software Foundation (ASF) under one or more
+ *     contributor license agreements.  See the NOTICE file distributed with
+ *     this work for additional information regarding copyright ownership.
+ *     The ASF licenses this file to You under the Apache License, Version 2.0
+ *     (the "License"); you may not use this file except in compliance with
+ *     the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *     Unless required by applicable law or agreed to in writing, software
+ *     distributed under the License is distributed on an "AS IS" BASIS,
+ *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *     See the License for the specific language governing permissions and
+ *     limitations under the License.
+ */
 package org.apache.openejb;
 
 /**

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java?rev=1176498&r1=1176497&r2=1176498&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java Tue Sep 27 18:13:48 2011
@@ -72,6 +72,10 @@ public class Module {
     }
 
     public void initAppModule(AppModule appModule) {
+        if (this.appModule == appModule) {
+            return;
+        }
+
         if (this.appModule != null) {
             throw new UnsupportedOperationException("AppModule is already set");
         }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1176498&r1=1176497&r2=1176498&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Tue Sep 27 18:13:48 2011
@@ -146,12 +146,7 @@ public class ReadDescriptors implements 
     private URL getUrl(Module module, String name) {
         URL url = (URL) module.getAltDDs().get(name);
         if (url == null && module.getClassLoader() != null) {
-            if (module instanceof WebModule) {
-                url = module.getClassLoader().getResource("WEB-INF/" + name);
-            } else {
-                url = module.getClassLoader().getResource("META-INF/" + name);
-            }
-
+            url = module.getClassLoader().getResource("META-INF/" + name);
             if (url != null) {
                 module.getAltDDs().put(name, url);
             }

Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java?rev=1176498&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java Tue Sep 27 18:13:48 2011
@@ -0,0 +1,110 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.assembler.classic;
+
+import org.apache.commons.dbcp.BasicDataSource;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.api.LocalClient;
+import org.apache.openejb.client.LocalInitialContextFactory;
+import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.config.EjbModule;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.SingletonBean;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.ejb.Singleton;
+import javax.inject.Inject;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
+/**
+ * @author rmannibucau
+ */
+public class OpenEJBXmlByModuleTest {
+    private Context context = null;
+
+    private UselessBean bean;
+
+    @Before public void setUp() throws OpenEJBException, NamingException, IOException {
+        ConfigurationFactory config = new ConfigurationFactory();
+        Assembler assembler = new Assembler();
+
+        assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
+        assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+
+        AppModule app = new AppModule(OpenEJBXmlByModuleTest.class.getClassLoader(), OpenEJBXmlByModuleTest.class.getSimpleName());
+
+        EjbJar ejbJar = new EjbJar();
+        ejbJar.addEnterpriseBean(new SingletonBean(UselessBean.class));
+        app.getEjbModules().add(new EjbModule(ejbJar));
+        app.getEjbModules().iterator().next().getAltDDs().put("openejb.xml", getClass().getClassLoader().getResource("META-INF/resource/appresource.openejb.xml"));
+
+        assembler.createApplication(config.configureApplication(app));
+
+        Properties properties = new Properties();
+        properties.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
+        context = new InitialContext(properties);
+
+        bean = (UselessBean) context.lookup("UselessBeanLocalBean");
+    }
+
+    @After public void close() throws NamingException {
+        if (context != null) {
+            context.close();
+        }
+    }
+
+    @Test public void test() throws Exception {
+        assertNotNull(bean.datasource());
+        assertTrue(bean.datasource() instanceof BasicDataSource);
+        BasicDataSource ds = (BasicDataSource) bean.datasource();
+        assertEquals("org.hsqldb.jdbcDriver", ds.getDriverClassName());
+        assertEquals("not:used:url", ds.getUrl());
+        assertEquals("foo", ds.getUsername());
+        assertEquals("bar", ds.getPassword());
+
+        assertNotNull(bean.resource());
+        assertEquals("ok", bean.resource().attr);
+    }
+
+    public static class MyResource {
+        public String attr = "ok";
+    }
+
+    @Singleton
+    public static class UselessBean {
+        @Resource(name = "DS") private DataSource ds;
+        @Resource(name = "My Resource", type = MyResource.class) private MyResource rs;
+
+        public DataSource datasource() { return ds; }
+        public MyResource resource() { return rs; }
+    }
+}

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/resource/appresource.openejb.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/resource/appresource.openejb.xml?rev=1176498&r1=1176497&r2=1176498&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/resource/appresource.openejb.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/resource/appresource.openejb.xml Tue Sep 27 18:13:48 2011
@@ -1,3 +1,20 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
 <openejb>
   <Resource id="DS" type="javax.sql.DataSource">
     JdbcDriver  org.hsqldb.jdbcDriver

Modified: openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java?rev=1176498&r1=1176497&r2=1176498&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java (original)
+++ openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java Tue Sep 27 18:13:48 2011
@@ -156,9 +156,15 @@ public class RestDeploymentTest {
     }
 
     @AfterClass public static void close() throws ServiceException {
-        service.stop();
-        daemon.stop();
-        server.stop();
+        if (service != null) {
+            service.stop();
+        }
+        if (daemon != null) {
+            daemon.stop();
+        }
+        if (server != null) {
+            server.stop();
+        }
     }
 
     @Test public void first() {