Author: gawor
Date: Tue Sep 21 15:27:23 2010
New Revision: 999462
URL: http://svn.apache.org/viewvc?rev=999462&view=rev
Log:
OPENEJB-1359: Inject app/AppName & module/ModuleName. Use module-name as
moduleId if set
Added:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
(with props)
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=999462&r1=999461&r2=999462&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Tue Sep 21 15:27:23 2010
@@ -501,7 +501,7 @@ public class Assembler extends Assembler
List<Injection> appInjections =
injectionBuilder.buildInjections(appInfo.globalJndiEnc);
appInjections.addAll(injectionBuilder.buildInjections(appInfo.appJndiEnc));
Context globalJndiContext = new JndiEncBuilder(appInfo.globalJndiEnc,
appInjections, null, classLoader).build(JndiEncBuilder.JndiScope.global);
- Context appJndiContext = new JndiEncBuilder(appInfo.appJndiEnc,
appInjections, null, classLoader).build(JndiEncBuilder.JndiScope.app);
+ Context appJndiContext = new JndiEncBuilder(appInfo.appJndiEnc,
appInjections, appInfo.appId, classLoader).build(JndiEncBuilder.JndiScope.app);
try {
// Generate the cmp2/cmp1 concrete subclasses
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java?rev=999462&r1=999461&r2=999462&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
Tue Sep 21 15:27:23 2010
@@ -18,7 +18,6 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.ApplicationClient;
import org.apache.xbean.finder.AbstractFinder;
-import org.apache.xbean.finder.ClassFinder;
import java.util.Map;
import java.util.HashMap;
@@ -51,8 +50,10 @@ public class ClientModule implements Dep
this.jarLocation = jarLocation;
this.mainClass = mainClass;
- if (moduleId == null){
- if (applicationClient != null && applicationClient.getId() !=
null){
+ if (moduleId == null) {
+ if (applicationClient != null && applicationClient.getModuleName()
!= null) {
+ moduleId = applicationClient.getModuleName();
+ } else if (applicationClient != null && applicationClient.getId()
!= null) {
moduleId = applicationClient.getId();
} else {
File file = new File(jarLocation);
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java?rev=999462&r1=999461&r2=999462&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
Tue Sep 21 15:27:23 2010
@@ -50,8 +50,10 @@ public class ConnectorModule implements
this.classLoader = classLoader;
this.jarLocation = jarLocation;
- if (moduleId == null){
- if (connector != null && connector.getId() != null){
+ if (moduleId == null) {
+ if (connector != null && connector.getModuleName() != null) {
+ moduleId = connector.getModuleName();
+ } else if (connector != null && connector.getId() != null) {
moduleId = connector.getId();
} else {
File file = new File(jarLocation);
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=999462&r1=999461&r2=999462&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
Tue Sep 21 15:27:23 2010
@@ -22,7 +22,6 @@ import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.Webservices;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.xbean.finder.AbstractFinder;
-import org.apache.xbean.finder.ClassFinder;
import java.io.File;
import java.util.Map;
@@ -53,11 +52,11 @@ public class EjbModule implements WsModu
private ClientModule clientModule;
- public EjbModule(EjbJar ejbJar){
+ public EjbModule(EjbJar ejbJar) {
this(Thread.currentThread().getContextClassLoader(), null, ejbJar,
null);
}
- public EjbModule(EjbJar ejbJar, OpenejbJar openejbJar){
+ public EjbModule(EjbJar ejbJar, OpenejbJar openejbJar) {
this(Thread.currentThread().getContextClassLoader(), null, ejbJar,
openejbJar);
}
@@ -80,13 +79,15 @@ public class EjbModule implements WsModu
}
this.jarLocation = jarURI;
- if (moduleId == null){
- if (ejbJar != null && ejbJar.getId() != null &&
!ejbJar.getId().equals("")){
+ if (moduleId == null) {
+ if (ejbJar != null && ejbJar.getModuleName() != null) {
+ moduleId = ejbJar.getModuleName();
+ } else if (ejbJar != null && ejbJar.getId() != null) {
moduleId = ejbJar.getId();
} else {
File file = new File(jarURI);
moduleId = file.getName();
- if (moduleId == null){
+ if (moduleId == null) {
moduleId = jarURI;
} else if (moduleId.endsWith(".jar")) {
moduleId = moduleId.substring(0, moduleId.length() -
".jar".length() );
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java?rev=999462&r1=999461&r2=999462&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
Tue Sep 21 15:27:23 2010
@@ -23,14 +23,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-import java.util.concurrent.atomic.AtomicReference;
import org.apache.openejb.jee.FacesConfig;
import org.apache.openejb.jee.TldTaglib;
import org.apache.openejb.jee.WebApp;
import org.apache.openejb.jee.Webservices;
import org.apache.xbean.finder.AbstractFinder;
-import org.apache.xbean.finder.ClassFinder;
/**
* @version $Rev$ $Date$
@@ -71,8 +69,10 @@ public class WebModule implements WsModu
if (webApp != null) webApp.setContextRoot(contextRoot);
- if (moduleId == null){
- if (webApp != null && webApp.getId() != null){
+ if (moduleId == null) {
+ if (webApp != null && webApp.getModuleName() != null) {
+ moduleId = webApp.getModuleName();
+ } else if (webApp != null && webApp.getId() != null) {
moduleId = webApp.getId();
} else {
File file = new File(jarLocation);
Added:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java?rev=999462&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
(added)
+++
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
Tue Sep 21 15:27:23 2010
@@ -0,0 +1,131 @@
+/**
+ *
+ * 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.config;
+
+import javax.annotation.Resource;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateless;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.core.ivm.naming.InitContextFactory;
+import org.apache.openejb.jee.Application;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.EnvEntry;
+import org.apache.openejb.jee.InjectionTarget;
+import org.apache.openejb.jee.StatelessBean;
+
+/**
+ * @version $Revision$ $Date$
+ */
+public class ModuleNameInjectionTest extends TestCase {
+
+ public void testInjections() throws Exception {
+ InitialContext ctx = new InitialContext();
+
+ Object object = ctx.lookup("WidgetBeanLocal");
+
+ assertTrue("instanceof widget", object instanceof Widget);
+
+ Widget widget = (Widget) object;
+
+ assertEquals("myApp", widget.getAppName());
+ assertEquals("myEjbModule", widget.getModuleName());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
InitContextFactory.class.getName());
+
+ ConfigurationFactory config = new ConfigurationFactory();
+ Assembler assembler = new Assembler();
+
+
assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
+
assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
+
assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+
+ // containers
+ StatelessSessionContainerInfo statelessContainerInfo =
config.configureService(StatelessSessionContainerInfo.class);
+ statelessContainerInfo.properties.setProperty("TimeOut", "10");
+ statelessContainerInfo.properties.setProperty("MaxSize", "0");
+ statelessContainerInfo.properties.setProperty("StrictPooling",
"false");
+ assembler.createContainer(statelessContainerInfo);
+
+ // Setup the descriptor information
+
+ StatelessBean bean = new StatelessBean(WidgetBean.class);
+ bean.addBusinessLocal(Widget.class.getName());
+ bean.addBusinessRemote(RemoteWidget.class.getName());
+
+ EjbJar ejbJar = new EjbJar();
+ ejbJar.setModuleName("myEjbModule");
+ ejbJar.addEnterpriseBean(bean);
+
+ EnvEntry entry;
+
+ entry = new EnvEntry("moduleName", (String) null, null);
+ entry.setLookupName("java:module/ModuleName");
+ entry.getInjectionTarget().add((new
InjectionTarget(WidgetBean.class.getName(), "moduleName")));
+ bean.getEnvEntry().add(entry);
+
+ entry = new EnvEntry("appName", (String) null, null);
+ entry.setLookupName("java:app/AppName");
+ entry.getInjectionTarget().add((new
InjectionTarget(WidgetBean.class.getName(), "appName")));
+ bean.getEnvEntry().add(entry);
+
+ AppModule app = new AppModule(this.getClass().getClassLoader(),
"test-app", new Application("myApp"), false);
+ app.getEjbModules().add(new EjbModule(ejbJar));
+
+ assembler.createApplication(config.configureApplication(app));
+ }
+
+ public static interface Widget {
+ String getModuleName();
+ String getAppName();
+ }
+
+ public static interface RemoteWidget extends Widget {
+ }
+
+ @Stateless
+ public static class WidgetBean implements Widget, RemoteWidget {
+
+ private SessionContext sessionContext;
+
+ @Resource
+ private String appName;
+
+ @Resource
+ private String moduleName;
+
+ public String getAppName() {
+ return appName;
+ }
+
+ public String getModuleName() {
+ return moduleName;
+ }
+ }
+}
Propchange:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ModuleNameInjectionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain