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/02 00:44:12 UTC
svn commit: r1164293 - in
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/ config/
Author: rmannibucau
Date: Thu Sep 1 22:44:11 2011
New Revision: 1164293
URL: http://svn.apache.org/viewvc?rev=1164293&view=rev
Log:
setting resources at app level\nTODO:\n* read openejb.xml in the app classloader and add resources\n* remove some warning about unused fields for datasource definition support
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java?rev=1164293&r1=1164292&r2=1164293&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java Thu Sep 1 22:44:11 2011
@@ -35,6 +35,7 @@ public class AppInfo extends InfoObject
public final List<PersistenceUnitInfo> persistenceUnits = new ArrayList<PersistenceUnitInfo>();
public final List<String> libs = new ArrayList<String>();
public final Set<String> watchedResources = new TreeSet<String>();
+ public final Set<ResourceInfo> resourceInfos = new TreeSet<ResourceInfo>();
public final JndiEncInfo globalJndiEnc = new JndiEncInfo();
public final JndiEncInfo appJndiEnc = new JndiEncInfo();
public String cmpMappingsXml;
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1164293&r1=1164292&r2=1164293&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Thu Sep 1 22:44:11 2011
@@ -339,6 +339,7 @@ public class AnnotationDeployer implemen
public static class DiscoverAnnotatedBeans implements DynamicDeployer {
public AppModule deploy(AppModule appModule) throws OpenEJBException {
for (EjbModule ejbModule : appModule.getEjbModules()) {
+ ejbModule.setAppModule(appModule);
setModule(ejbModule);
try {
deploy(ejbModule);
@@ -347,6 +348,7 @@ public class AnnotationDeployer implemen
}
}
for (ClientModule clientModule : appModule.getClientModules()) {
+ clientModule.setAppModule(appModule);
setModule(clientModule);
try {
deploy(clientModule);
@@ -355,6 +357,7 @@ public class AnnotationDeployer implemen
}
}
for (ConnectorModule connectorModule : appModule.getConnectorModules()) {
+ connectorModule.setAppModule(appModule);
setModule(connectorModule);
try {
deploy(connectorModule);
@@ -363,6 +366,7 @@ public class AnnotationDeployer implemen
}
}
for (WebModule webModule : appModule.getWebModules()) {
+ webModule.setAppModule(appModule);
setModule(webModule);
try {
deploy(webModule);
@@ -1288,7 +1292,7 @@ public class AnnotationDeployer implemen
for (DataSourceDefinition dsDef : datasources) {
org.apache.openejb.config.sys.Resource def = getDatasourceDefinitaion(dsDef);
- module.getResources().add(def);
+ module.addResource(def);
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1164293&r1=1164292&r2=1164293&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Thu Sep 1 22:44:11 2011
@@ -19,7 +19,6 @@ package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.ClientInfo;
-import org.apache.openejb.assembler.classic.CommonInfoObject;
import org.apache.openejb.assembler.classic.ConnectorInfo;
import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
@@ -66,7 +65,6 @@ import org.apache.openejb.util.MakeTxLoo
import org.apache.openejb.util.Messages;
import org.apache.openejb.util.References;
-import javax.sql.DataSource;
import javax.xml.bind.JAXBException;
import java.io.File;
import java.io.IOException;
@@ -109,6 +107,8 @@ class AppInfoBuilder {
if (appInfo.appId == null) throw new IllegalArgumentException("AppInfo.appId cannot be null");
if (appInfo.path == null) appInfo.path = appInfo.appId;
+ buildAppResources(appModule, appInfo);
+
//
// J2EE Connectors
//
@@ -170,7 +170,6 @@ class AppInfoBuilder {
ejbJarInfo.portInfos.addAll(configureWebservices(ejbModule.getWebservices()));
ejbJarInfo.uniqueId = ejbModule.getUniqueId();
ejbJarInfo.repositories = ejbModule.getRepositories();
- copyDatasources(ejbModule, ejbJarInfo);
configureWebserviceSecurity(ejbJarInfo, ejbModule);
ejbJarInfos.put(ejbModule, ejbJarInfo);
@@ -271,18 +270,16 @@ class AppInfoBuilder {
}
- private void copyDatasources(Module module, CommonInfoObject info) {
+ private void buildAppResources(AppModule module, AppInfo info) {
for (Resource def : module.getResources()) {
- if (!DataSource.class.getName().equals(def.getType())) {
- continue;
- }
-
ResourceInfo resourceInfo = new ResourceInfo();
- resourceInfo.id = module.getUniqueId() + "/" + def.getJndi().replace("java:", "");
+ resourceInfo.id = module.getModuleId() + "/" + def.getJndi().replace("java:", "");
resourceInfo.service = "Resource";
resourceInfo.types.add(def.getType());
resourceInfo.properties = def.getProperties();
+
+ info.resourceInfos.add(resourceInfo);
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=1164293&r1=1164292&r2=1164293&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java Thu Sep 1 22:44:11 2011
@@ -17,6 +17,8 @@
package org.apache.openejb.config;
import java.util.HashSet;
+
+import org.apache.openejb.config.sys.Resource;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.jpa.EntityMappings;
@@ -44,6 +46,7 @@ public class AppModule implements Deploy
private final List<ClientModule> clientModules = new ArrayList<ClientModule>();
private final List<EjbModule> ejbModules = new ArrayList<EjbModule>();
private final List<PersistenceModule> persistenceModules = new ArrayList<PersistenceModule>();
+ private final Collection<Resource> resources = new ArrayList<Resource>();
private final ClassLoader classLoader;
private EntityMappings cmpMappings;
private final Map<String,Object> altDDs = new HashMap<String,Object>();
@@ -252,6 +255,10 @@ public class AppModule implements Deploy
return watchedResources;
}
+ public Collection<Resource> getResources() {
+ return resources;
+ }
+
public Collection<DeploymentModule> getDeploymentModule() {
ArrayList<DeploymentModule> modules = new ArrayList<DeploymentModule>();
modules.addAll(ejbModules);
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1164293&r1=1164292&r2=1164293&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Thu Sep 1 22:44:11 2011
@@ -146,6 +146,8 @@ public class AutoConfig implements Dynam
public synchronized AppModule deploy(AppModule appModule) throws OpenEJBException {
AppResources appResources = new AppResources(appModule);
+ processDataSourceDefinitions(appModule);
+
for (EjbModule ejbModule : appModule.getEjbModules()) {
processActivationConfig(ejbModule);
}
@@ -766,8 +768,6 @@ public class AutoConfig implements Dynam
ejbModule.setOpenejbJar(openejbJar);
}
- processDataSourceDefinitions(ejbModule);
-
Map<String, EjbDeployment> deployments = openejbJar.getDeploymentsByEjbName();
for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
@@ -827,7 +827,7 @@ public class AutoConfig implements Dynam
}
}
- private void processDataSourceDefinitions(Module module) throws OpenEJBException {
+ private void processDataSourceDefinitions(AppModule module) throws OpenEJBException {
Collection<Resource> datasources = module.getResources();
for (Resource datasource : datasources) {
@@ -844,7 +844,7 @@ public class AutoConfig implements Dynam
properties.remove("LoginTimeout");
ResourceInfo resourceInfo = configFactory.configureService(datasource, ResourceInfo.class);
- installResource(module.getUniqueId(), resourceInfo);
+ installResource(module.getModuleId(), resourceInfo);
}
datasources.clear();
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=1164293&r1=1164292&r2=1164293&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 Thu Sep 1 22:44:11 2011
@@ -19,12 +19,8 @@ package org.apache.openejb.config;
import org.apache.openejb.config.sys.Resource;
import org.apache.openejb.jee.bval.ValidationConfigType;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
-import java.util.Set;
public class Module {
private static int currentId = 1; // unique id to be able to bind something for each module in the jndi tree
@@ -36,7 +32,7 @@ public class Module {
private ValidationConfigType validationConfig;
private final Map<String, Object> altDDs = new HashMap<String, Object>();
private String uniqueId;
- private final Collection<Resource> resources = new ArrayList<Resource>();
+ private AppModule appModule = null;
public Module() {
uniqueId = Integer.toString(currentId++);
@@ -74,7 +70,13 @@ public class Module {
this.classLoader = classLoader;
}
- public Collection<Resource> getResources() {
- return resources;
+ public void addResource(Resource resource) {
+ if (appModule != null) {
+ appModule.getResources().add(resource);
+ }
+ }
+
+ public void setAppModule(AppModule appModule) {
+ this.appModule = appModule;
}
}