You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/01/26 18:25:59 UTC
svn commit: r500286 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/ config/ persistence/
Author: dain
Date: Fri Jan 26 09:25:51 2007
New Revision: 500286
URL: http://svn.apache.org/viewvc?view=rev&rev=500286
Log:
Split PersistenceDeployer between DeploymentLoader, ConfigurationFactory, and PersistenceBuilder for xml loading, config info creation and entity manager factory creation respectively.
Added:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java (contents, props changed)
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/DataSourceResolver.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java (contents, props changed)
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/GlobalJndiDataSourceResolver.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java (contents, props changed)
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextReferenceInfo.java
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java (contents, props changed)
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployerException.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitReferenceInfo.java
- copied, changed from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
Removed:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/DataSourceResolver.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/GlobalJndiDataSourceResolver.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployerException.java
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java Fri Jan 26 09:25:51 2007
@@ -26,5 +26,6 @@
public String jarPath;
public final List<ClientInfo> clients = new ArrayList<ClientInfo>();
public final List<EjbJarInfo> ejbJars = new ArrayList<EjbJarInfo>();
+ public final List<PersistenceUnitInfo> persistenceUnits = new ArrayList<PersistenceUnitInfo>();
public final List<String> libs = new ArrayList<String>();
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Fri Jan 26 09:25:51 2007
@@ -32,11 +32,8 @@
import org.apache.openejb.core.TemporaryClassLoader;
import org.apache.openejb.javaagent.Agent;
import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.persistence.GlobalJndiDataSourceResolver;
import org.apache.openejb.persistence.JtaEntityManagerRegistry;
import org.apache.openejb.persistence.PersistenceClassLoaderHandler;
-import org.apache.openejb.persistence.PersistenceDeployer;
-import org.apache.openejb.persistence.PersistenceDeployerException;
import org.apache.openejb.spi.ApplicationServer;
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.spi.SecurityService;
@@ -45,7 +42,6 @@
import org.apache.openejb.util.SafeToolkit;
import org.apache.openejb.util.proxy.ProxyFactory;
import org.apache.openejb.util.proxy.ProxyManager;
-import org.apache.xbean.finder.ResourceFinder;
import org.apache.xbean.recipe.ObjectRecipe;
import org.apache.xbean.recipe.StaticRecipe;
@@ -69,6 +65,7 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.TreeMap;
public class Assembler extends AssemblerTool implements org.apache.openejb.spi.Assembler {
@@ -353,17 +350,17 @@
// JPA - Persistence Units MUST be processed first since they will add ClassFileTransformers
// to the class loader which must be added before any classes are loaded
HashMap<String, Map<String, EntityManagerFactory>> allFactories = new HashMap<String, Map<String, EntityManagerFactory>>();
- for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+ PersistenceBuilder persistenceBuilder = new PersistenceBuilder(new GlobalJndiDataSourceResolver(null), persistenceClassLoaderHandler);
+ for (PersistenceUnitInfo info : appInfo.persistenceUnits) {
try {
- URL url = new File(ejbJar.jarPath).toURL();
- ResourceFinder resourceFinder = new ResourceFinder("", classLoader, url);
-
- PersistenceDeployer persistenceDeployer = new PersistenceDeployer(new GlobalJndiDataSourceResolver(null), persistenceClassLoaderHandler);
- Map<String, EntityManagerFactory> factories = persistenceDeployer.deploy(resourceFinder.findAll("META-INF/persistence.xml"), classLoader);
- allFactories.put(ejbJar.jarPath, factories);
- } catch (PersistenceDeployerException e1) {
- throw new OpenEJBException(e1);
- } catch (IOException e) {
+ EntityManagerFactory factory = persistenceBuilder.createEntityManagerFactory(info, classLoader);
+ Map<String, EntityManagerFactory> factories = allFactories.get(info.persistenceUnitRootUrl);
+ if (factories == null) {
+ factories = new TreeMap<String, EntityManagerFactory>();
+ allFactories.put(info.persistenceUnitRootUrl, factories);
+ }
+ factories.put(info.name, factory);
+ } catch (Exception e) {
throw new OpenEJBException(e);
}
}
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/DataSourceResolver.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/DataSourceResolver.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/DataSourceResolver.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java Fri Jan 26 09:25:51 2007
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.persistence;
+package org.apache.openejb.assembler.classic;
import javax.sql.DataSource;
Propchange: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DataSourceResolver.java
------------------------------------------------------------------------------
svn:keywords = Date Rev Author Id Revision HeadURL
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java Fri Jan 26 09:25:51 2007
@@ -136,7 +136,7 @@
}
}
- for (PersistenceUnitInfo info : bean.jndiEnc.persistenceUnitRefs) {
+ for (PersistenceUnitReferenceInfo info : bean.jndiEnc.persistenceUnitRefs) {
for (InjectionInfo target : info.targets) {
Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
@@ -144,7 +144,7 @@
}
}
- for (PersistenceContextInfo info : bean.jndiEnc.persistenceContextRefs) {
+ for (PersistenceContextReferenceInfo info : bean.jndiEnc.persistenceContextRefs) {
for (InjectionInfo target : info.targets) {
Class targetClass = loadClass(target.className, "classNotFound.injectionTarget");
Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
@@ -185,7 +185,7 @@
deployment.setPostActivate(getCallback(ejbClass, statefulBeanInfo.postActivate));
Map<EntityManagerFactory, Map> extendedEntityManagerFactories = new HashMap<EntityManagerFactory, Map>();
- for (PersistenceContextInfo info : statefulBeanInfo.jndiEnc.persistenceContextRefs) {
+ for (PersistenceContextReferenceInfo info : statefulBeanInfo.jndiEnc.persistenceContextRefs) {
if (info.extended) {
EntityManagerFactory entityManagerFactory = jndiEncBuilder.findEntityManagerFactory(info.persistenceUnitName);
extendedEntityManagerFactories.put(entityManagerFactory, info.properties);
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/GlobalJndiDataSourceResolver.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/GlobalJndiDataSourceResolver.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/GlobalJndiDataSourceResolver.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java Fri Jan 26 09:25:51 2007
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.persistence;
+package org.apache.openejb.assembler.classic;
import javax.naming.InitialContext;
import javax.naming.NamingException;
Propchange: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/GlobalJndiDataSourceResolver.java
------------------------------------------------------------------------------
svn:keywords = Date Rev Author Id Revision HeadURL
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Fri Jan 26 09:25:51 2007
@@ -85,21 +85,20 @@
beanManagedTransactions = transactionType != null && transactionType.equalsIgnoreCase("Bean");
+ this.jarPath = path;
this.jndiEnc = jndiEnc;
- if(allFactories != null){
- this.allFactories = allFactories;
- } else {
- this.allFactories = new HashMap<String, Map<String, EntityManagerFactory>>();
+ if (allFactories == null) {
+ allFactories = new HashMap<String, Map<String, EntityManagerFactory>>();
}
+ this.allFactories = allFactories;
- this.jarPath = path;
- if(this.allFactories.get(jarPath) != null){
- entityManagerFactories = this.allFactories.get(jarPath);
- } else {
- entityManagerFactories = new HashMap<String, EntityManagerFactory>();
+ Map<String, EntityManagerFactory> factories = allFactories.get(jarPath);
+ if (factories == null) {
+ factories = new HashMap<String, EntityManagerFactory>();
}
+ entityManagerFactories = factories;
}
public Context build() throws OpenEJBException {
@@ -269,7 +268,7 @@
//TODO code for handling other resource-env-refs need to be added here.
}
- for (PersistenceUnitInfo referenceInfo : jndiEnc.persistenceUnitRefs) {
+ for (PersistenceUnitReferenceInfo referenceInfo : jndiEnc.persistenceUnitRefs) {
if (referenceInfo.location != null){
Reference reference = buildReferenceLocation(referenceInfo.location);
bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
@@ -282,7 +281,7 @@
bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
}
- for (PersistenceContextInfo contextInfo : jndiEnc.persistenceContextRefs) {
+ for (PersistenceContextReferenceInfo contextInfo : jndiEnc.persistenceContextRefs) {
if (contextInfo.location != null){
Reference reference = buildReferenceLocation(contextInfo.location);
bindings.put(normalize(contextInfo.referenceName), wrapReference(reference));
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncInfo.java Fri Jan 26 09:25:51 2007
@@ -26,8 +26,8 @@
public final List<EjbReferenceInfo> ejbReferences = new ArrayList<EjbReferenceInfo>();
public final List<EjbLocalReferenceInfo> ejbLocalReferences = new ArrayList<EjbLocalReferenceInfo>();
public final List<ResourceReferenceInfo> resourceRefs = new ArrayList<ResourceReferenceInfo>();
- public final List<PersistenceUnitInfo> persistenceUnitRefs = new ArrayList<PersistenceUnitInfo>();
- public final List<PersistenceContextInfo> persistenceContextRefs = new ArrayList<PersistenceContextInfo>();
+ public final List<PersistenceUnitReferenceInfo> persistenceUnitRefs = new ArrayList<PersistenceUnitReferenceInfo>();
+ public final List<PersistenceContextReferenceInfo> persistenceContextRefs = new ArrayList<PersistenceContextReferenceInfo>();
public final List<ResourceEnvReferenceInfo> resourceEnvRefs = new ArrayList<ResourceEnvReferenceInfo>();
public final List<MessageDestinationReferenceInfo> messageDestinationRefs = new ArrayList<MessageDestinationReferenceInfo>();
public final List<ServiceReferenceInfo> serviceRefs = new ArrayList<ServiceReferenceInfo>();
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployer.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployer.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java Fri Jan 26 09:25:51 2007
@@ -14,25 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.persistence;
-
-import org.apache.openejb.jee.jpa.unit.JaxbPersistenceFactory;
-import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
-import org.apache.openejb.jee.jpa.unit.TransactionType;
+package org.apache.openejb.assembler.classic;
+import java.io.File;
+import java.util.HashMap;
import javax.persistence.EntityManagerFactory;
import javax.persistence.spi.PersistenceProvider;
import javax.persistence.spi.PersistenceUnitTransactionType;
import javax.sql.DataSource;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-public class PersistenceDeployer {
- public static final String PERSISTENCE_SCHEMA = "http://java.sun.com/xml/ns/persistence";
+import org.apache.openejb.persistence.PersistenceClassLoaderHandler;
+import org.apache.openejb.persistence.PersistenceUnitInfoImpl;
+public class PersistenceBuilder {
public static final String PROVIDER_PROP = "javax.persistence.provider";
public static final String TRANSACTIONTYPE_PROP = "javax.persistence.transactionType";
@@ -41,6 +35,8 @@
public static final String NON_JTADATASOURCE_PROP = "javax.persistence.nonJtaDataSource";
+ private static final String DEFAULT_PERSISTENCE_PROVIDER = "org.apache.openjpa.persistence.PersistenceProviderImpl";
+
/**
* Used to resolve jta and non-jta data cource names for actual DataSource objects.
*/
@@ -71,7 +67,7 @@
*/
private String nonJtaDataSourceEnv;
- public PersistenceDeployer(DataSourceResolver dataSourceResolver, PersistenceClassLoaderHandler persistenceClassLoaderHandler) {
+ public PersistenceBuilder(DataSourceResolver dataSourceResolver, PersistenceClassLoaderHandler persistenceClassLoaderHandler) {
loadSystemProps();
this.dataSourceResolver = dataSourceResolver;
this.persistenceClassLoaderHandler = persistenceClassLoaderHandler;
@@ -84,111 +80,80 @@
nonJtaDataSourceEnv = System.getProperty(NON_JTADATASOURCE_PROP);
}
- public Map<String, EntityManagerFactory> loadPersistence(ClassLoader cl, URL url) throws PersistenceDeployerException {
- try {
- Map<String, EntityManagerFactory> factories = new HashMap<String, EntityManagerFactory>();
-
- org.apache.openejb.jee.jpa.unit.Persistence persistence = JaxbPersistenceFactory.getPersistence(url);
-
- List<PersistenceUnit> persistenceUnits = persistence.getPersistenceUnit();
-
- for (PersistenceUnit pu : persistenceUnits) {
- PersistenceUnitInfoImpl unitInfo = new PersistenceUnitInfoImpl(persistenceClassLoaderHandler);
- unitInfo.setPersistenceUnitName(pu.getName());
- if (providerEnv != null) {
- unitInfo.setPersistenceProviderClassName(providerEnv);
- } else {
- unitInfo.setPersistenceProviderClassName(pu.getProvider());
- }
-
- unitInfo.setClassLoader(cl);
- if (pu.isExcludeUnlistedClasses() == null) {
- unitInfo.setExcludeUnlistedClasses(false);
- } else {
- unitInfo.setExcludeUnlistedClasses(pu.isExcludeUnlistedClasses().booleanValue());
- }
-
- unitInfo.setJarFileUrls(pu.getJarFile());
-
- // JTA Datasource
- String dataSource = pu.getJtaDataSource();
- if (jtaDataSourceEnv != null) dataSource = jtaDataSourceEnv;
-
- if (dataSource != null) {
- DataSource jtaDataSource = dataSourceResolver.getDataSource(dataSource);
- unitInfo.setJtaDataSource(jtaDataSource);
- }
-
- unitInfo.setManagedClassNames(pu.getClazz());
- unitInfo.setMappingFileNames(pu.getMappingFile());
-
- // Handle Properties
- org.apache.openejb.jee.jpa.unit.Properties puiProperties = pu.getProperties();
- if (puiProperties != null) {
- Properties properties = new Properties();
- for (org.apache.openejb.jee.jpa.unit.Property property : puiProperties.getProperty()) {
- properties.put(property.getName(), property.getValue());
- }
- unitInfo.setProperties(properties);
- }
-
- // Persistence Unit Transaction Type
- if (transactionTypeEnv != null) {
- try {
- // Override with sys vars
- PersistenceUnitTransactionType type = Enum.valueOf(PersistenceUnitTransactionType.class, transactionTypeEnv.toUpperCase());
- unitInfo.setTransactionType(type);
- } catch (IllegalArgumentException e) {
- throw new IllegalArgumentException("Unknown " + TRANSACTIONTYPE_PROP + ", valid options are " + PersistenceUnitTransactionType.JTA + " or " + PersistenceUnitTransactionType.RESOURCE_LOCAL);
- }
- } else {
- TransactionType tranType = pu.getTransactionType();
- PersistenceUnitTransactionType type = Enum.valueOf(PersistenceUnitTransactionType.class, tranType.toString());
- unitInfo.setTransactionType(type);
- }
-
- // Non JTA Datasource
- String nonJta = pu.getNonJtaDataSource();
- if (nonJtaDataSourceEnv != null) nonJta = nonJtaDataSourceEnv;
-
- if (nonJta != null) {
- DataSource nonJtaDataSource = dataSourceResolver.getDataSource(dataSource);
- unitInfo.setNonJtaDataSource(nonJtaDataSource);
- }
-
- String rootUrlPath = url.toExternalForm().replaceFirst("!?META-INF/persistence.xml$", "");
- unitInfo.setPersistenceUnitRootUrl(new URL(rootUrlPath));
-
- String persistenceProviderClassName = unitInfo.getPersistenceProviderClassName();
- if (persistenceProviderClassName == null) {
- continue;
- }
- Class clazz = cl.loadClass(persistenceProviderClassName);
- PersistenceProvider persistenceProvider = (PersistenceProvider) clazz.newInstance();
- EntityManagerFactory emf = persistenceProvider.createContainerEntityManagerFactory(unitInfo, new HashMap());
+ public EntityManagerFactory createEntityManagerFactory(PersistenceUnitInfo info, ClassLoader classLoader) throws Exception {
+ PersistenceUnitInfoImpl unitInfo = new PersistenceUnitInfoImpl(persistenceClassLoaderHandler);
+ // Persistence Unit Name
+ unitInfo.setPersistenceUnitName(info.name);
- factories.put(unitInfo.getPersistenceUnitName(), emf);
- }
+ // Persistence Provider Class Name
+ if (providerEnv != null) {
+ unitInfo.setPersistenceProviderClassName(providerEnv);
+ } else {
+ unitInfo.setPersistenceProviderClassName(info.provider);
+ }
+
+ // ClassLoader
+ unitInfo.setClassLoader(classLoader);
+
+ // Exclude Unlisted Classes
+ unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
+
+ // Jar File Urls
+ unitInfo.setJarFileUrls(info.jarFiles);
- return factories;
- } catch (Exception e) {
- e.printStackTrace(System.err);
- throw new PersistenceDeployerException(e);
+ // JTA Datasource
+ String dataSource = info.jtaDataSource;
+ if (jtaDataSourceEnv != null) dataSource = jtaDataSourceEnv;
+ if (dataSource != null) {
+ DataSource jtaDataSource = dataSourceResolver.getDataSource(dataSource);
+ unitInfo.setJtaDataSource(jtaDataSource);
}
- }
+ // Managed Class Names
+ unitInfo.setManagedClassNames(info.classes);
- public Map<String, EntityManagerFactory> deploy(List<URL> urls, ClassLoader cl) throws PersistenceDeployerException {
+ // Mapping File Names
+ unitInfo.setMappingFileNames(info.mappingFiles);
- Map<String, EntityManagerFactory> factories = new HashMap<String, EntityManagerFactory>();
- // Read the persistence.xml files
+ // Handle Properties
+ unitInfo.setProperties(info.properties);
- for (URL url : urls) {
- factories.putAll(loadPersistence(cl, url));
+ // Persistence Unit Transaction Type
+ if (transactionTypeEnv != null) {
+ try {
+ // Override with sys vars
+ PersistenceUnitTransactionType type = Enum.valueOf(PersistenceUnitTransactionType.class, transactionTypeEnv.toUpperCase());
+ unitInfo.setTransactionType(type);
+ } catch (IllegalArgumentException e) {
+ throw new IllegalArgumentException("Unknown " + TRANSACTIONTYPE_PROP + ", valid options are " + PersistenceUnitTransactionType.JTA + " or " + PersistenceUnitTransactionType.RESOURCE_LOCAL);
+ }
+ } else {
+ PersistenceUnitTransactionType type = Enum.valueOf(PersistenceUnitTransactionType.class, info.transactionType);
+ unitInfo.setTransactionType(type);
}
- return factories;
- }
+ // Non JTA Datasource
+ String nonJta = info.nonJtaDataSource;
+ if (nonJtaDataSourceEnv != null) nonJta = nonJtaDataSourceEnv;
+ if (nonJta != null) {
+ DataSource nonJtaDataSource = dataSourceResolver.getDataSource(dataSource);
+ unitInfo.setNonJtaDataSource(nonJtaDataSource);
+ }
+
+ // Persistence Unit Root Url
+ unitInfo.setPersistenceUnitRootUrl(new File(info.persistenceUnitRootUrl).toURL());
+
+ // create the persistence provider
+ String persistenceProviderClassName = unitInfo.getPersistenceProviderClassName();
+ if (persistenceProviderClassName == null) {
+ persistenceProviderClassName = DEFAULT_PERSISTENCE_PROVIDER;
+ }
+ Class clazz = classLoader.loadClass(persistenceProviderClassName);
+ PersistenceProvider persistenceProvider = (PersistenceProvider) clazz.newInstance();
+ // Create entity manager factory
+ EntityManagerFactory emf = persistenceProvider.createContainerEntityManagerFactory(unitInfo, new HashMap());
+ return emf;
+ }
}
Propchange: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Rev Author Id Revision HeadURL
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextReferenceInfo.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextReferenceInfo.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextReferenceInfo.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceContextReferenceInfo.java Fri Jan 26 09:25:51 2007
@@ -22,7 +22,7 @@
/**
* @version $Rev$ $Date$
*/
-public class PersistenceContextInfo extends InjectableInfo {
+public class PersistenceContextReferenceInfo extends InjectableInfo {
public String referenceName;
public String persistenceUnitName;
public boolean extended;
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployerException.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployerException.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceDeployerException.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java Fri Jan 26 09:25:51 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.persistence;
+package org.apache.openejb.assembler.classic;
public class PersistenceDeployerException extends Exception {
Propchange: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceDeployerException.java
------------------------------------------------------------------------------
svn:keywords = Date Rev Author Id Revision HeadURL
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java?view=auto&rev=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java Fri Jan 26 09:25:51 2007
@@ -0,0 +1,36 @@
+/**
+ * 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 java.util.List;
+import java.util.Properties;
+import java.util.ArrayList;
+
+public class PersistenceUnitInfo extends InfoObject {
+ public String name;
+ public String provider;
+ public String transactionType;
+ public String jtaDataSource;
+ public String nonJtaDataSource;
+ public final List<String> mappingFiles = new ArrayList<String>();
+ public final List<String> jarFiles = new ArrayList<String>();
+ public final List<String> classes = new ArrayList<String>();
+ public boolean excludeUnlistedClasses;
+ public final Properties properties = new Properties();
+ public String persistenceUnitRootUrl;
+
+}
Copied: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitReferenceInfo.java (from r500112, incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java)
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitReferenceInfo.java?view=diff&rev=500286&p1=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java&r1=500112&p2=incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitReferenceInfo.java&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceUnitReferenceInfo.java Fri Jan 26 09:25:51 2007
@@ -19,7 +19,7 @@
/**
* @version $Rev$ $Date$
*/
-public class PersistenceUnitInfo extends InjectableInfo {
+public class PersistenceUnitReferenceInfo extends InjectableInfo {
public String referenceName;
public String persistenceUnitName;
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java Fri Jan 26 09:25:51 2007
@@ -16,17 +16,18 @@
*/
package org.apache.openejb.config;
-import java.util.List;
-import java.util.ArrayList;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
/**
* @version $Rev$ $Date$
*/
public class AppModule implements DeploymentModule {
- private final List<URL> additionalLibraries = new ArrayList();
- private final List<ClientModule> clientModules = new ArrayList();
- private final List<EjbModule> ejbModules = new ArrayList();
+ private final List<URL> additionalLibraries = new ArrayList<URL>();
+ 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 String jarLocation;
private final ClassLoader classLoader;
@@ -45,6 +46,10 @@
public List<EjbModule> getEjbModules() {
return ejbModules;
+ }
+
+ public List<PersistenceModule> getPersistenceModules() {
+ return persistenceModules;
}
public String getJarLocation() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Fri Jan 26 09:25:51 2007
@@ -49,7 +49,11 @@
import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
import org.apache.openejb.jee.ApplicationClient;
+import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
+import org.apache.openejb.jee.jpa.unit.Property;
+import org.apache.openejb.jee.jpa.unit.Persistence;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
@@ -312,6 +316,39 @@
JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(appInfo.ejbJars);
clientInfo.jndiEnc = jndiEncInfoBuilder.build(applicationClient, clientModule.getJarLocation());
appInfo.clients.add(clientInfo);
+ }
+
+ for (PersistenceModule persistenceModule : appModule.getPersistenceModules()) {
+ String rootUrl = persistenceModule.getRootUrl();
+ Persistence persistence = persistenceModule.getPersistence();
+ for (PersistenceUnit persistenceUnit : persistence.getPersistenceUnit()) {
+ PersistenceUnitInfo info = new PersistenceUnitInfo();
+ info.name = persistenceUnit.getName();
+ info.persistenceUnitRootUrl = rootUrl;
+ info.provider = persistenceUnit.getProvider();
+ info.transactionType = persistenceUnit.getTransactionType().toString();
+
+ Boolean excludeUnlistedClasses = persistenceUnit.isExcludeUnlistedClasses();
+ info.excludeUnlistedClasses = excludeUnlistedClasses != null && excludeUnlistedClasses;
+
+ info.jtaDataSource = persistenceUnit.getJtaDataSource();
+ info.nonJtaDataSource = persistenceUnit.getNonJtaDataSource();
+
+ info.jarFiles.addAll(persistenceUnit.getJarFile());
+ info.classes.addAll(persistenceUnit.getClazz());
+ info.mappingFiles.addAll(persistenceUnit.getMappingFile());
+
+ // Handle Properties
+ org.apache.openejb.jee.jpa.unit.Properties puiProperties = persistenceUnit.getProperties();
+ if (puiProperties != null) {
+ for (Property property : puiProperties.getProperty()) {
+ info.properties.put(property.getName(), property.getValue());
+ }
+ }
+
+ // Persistence Unit Root Url
+ appInfo.persistenceUnits.add(info);
+ }
}
appInfo.jarPath = appModule.getJarLocation();
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Fri Jan 26 09:25:51 2007
@@ -25,6 +25,8 @@
import org.apache.openejb.jee.ApplicationClient;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.Module;
+import org.apache.openejb.jee.jpa.unit.Persistence;
+import org.apache.openejb.jee.jpa.unit.JaxbPersistenceFactory;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
import org.apache.xbean.finder.ClassFinder;
@@ -49,7 +51,7 @@
*/
public class DeploymentLoader {
- private static final Map<Class<?>, JaxbUnmarshaller> unmarshallers = new HashMap();
+ private static final Map<Class<?>, JaxbUnmarshaller> unmarshallers = new HashMap<Class<?>, JaxbUnmarshaller>();
public static Logger logger = Logger.getInstance("OpenEJB.startup", "org.apache.openejb.util.resources");
private static final Messages messages = new Messages("org.apache.openejb.util.resources");
@@ -90,7 +92,7 @@
}
try {
- List<URL> extraLibs = new ArrayList();
+ List<URL> extraLibs = new ArrayList<URL>();
try {
Map<String, URL> libs = finder.getResourcesMap("lib/");
@@ -113,8 +115,8 @@
logger.warning("Cannot load libs from 'META-INF/lib/' : " + e.getMessage(), e);
}
- Map<String, URL> ejbModules = new HashMap();
- Map<String, URL> clientModules = new HashMap();
+ Map<String, URL> ejbModules = new HashMap<String, URL>();
+ Map<String, URL> clientModules = new HashMap<String, URL>();
URL applicationXmlUrl = descriptors.get("application.xml");
@@ -136,7 +138,7 @@
}
} else {
application = new Application();
- HashMap<String, URL> files = new HashMap();
+ HashMap<String, URL> files = new HashMap<String, URL>();
scanDir(appDir, files, "");
files.remove("META-INF/MANIFEST.MF");
for (Map.Entry<String, URL> entry : files.entrySet()) {
@@ -158,12 +160,12 @@
}
}
- List<URL> classPath = new ArrayList();
+ List<URL> classPath = new ArrayList<URL>();
classPath.addAll(ejbModules.values());
classPath.addAll(clientModules.values());
classPath.addAll(extraLibs);
- ClassLoader appClassLoader = new TemporaryClassLoader(classPath.toArray(new URL[]{}), OpenEJB.class.getClassLoader());
-
+ URL[] urls = classPath.toArray(new URL[]{});
+ ClassLoader appClassLoader = new TemporaryClassLoader(urls, OpenEJB.class.getClassLoader());
AppModule appModule = new AppModule(appClassLoader, appDir.getAbsolutePath());
appModule.getAdditionalLibraries().addAll(extraLibs);
@@ -231,6 +233,10 @@
}
}
+ //
+ // Persistence Units
+ addPersistenceUnits(appModule, appClassLoader, appDir, urls);
+
return appModule;
} catch (OpenEJBException e) {
@@ -243,16 +249,44 @@
EjbJarUtils ejbJarUtils = new EjbJarUtils(jarFile.getAbsolutePath());
EjbModule ejbModule = new EjbModule(classLoader, jarFile.getAbsolutePath(), ejbJarUtils.getEjbJar(), ejbJarUtils.getOpenejbJar());
-
// EjbModule ejbModule = deployer.deploy(undeployedModule);
AppModule appModule = new AppModule(classLoader, ejbModule.getJarLocation());
appModule.getEjbModules().add(ejbModule);
+ //
+ // Persistence Units
+ ClassLoader tmpClassLoader = new TemporaryClassLoader(new URL[]{baseUrl}, OpenEJB.class.getClassLoader());
+ addPersistenceUnits(appModule, tmpClassLoader, jarFile, baseUrl);
+
return appModule;
}
}
+ private void addPersistenceUnits(AppModule appModule, ClassLoader tmpClassLoader, File jarFile, URL... urls) {
+ List<URL> persistenceUrls = null;
+ try {
+ ResourceFinder finder = new ResourceFinder("", tmpClassLoader, urls);
+ persistenceUrls = finder.findAll("META-INF/persistence.xml");
+ } catch (IOException e) {
+ logger.warning("Cannot load persistence-units from 'META-INF/persistence.xml' : " + e.getMessage(), e);
+ }
+ for (URL url : persistenceUrls) {
+ String moduleName = url.toExternalForm().replaceFirst("!?/?META-INF/persistence.xml$", "");
+ if (moduleName.startsWith("jar:")) moduleName = moduleName.substring("jar:".length());
+ if (moduleName.startsWith("file:")) moduleName = moduleName.substring("file:".length());
+ if (moduleName.endsWith("/")) moduleName = moduleName.substring(0, moduleName.length() -1);
+ try {
+ Persistence persistence = JaxbPersistenceFactory.getPersistence(url);
+ PersistenceModule persistenceModule = new PersistenceModule(moduleName, persistence);
+ appModule.getPersistenceModules().add(persistenceModule);
+
+ } catch (Exception e) {
+ logger.error("Unable to load Persistence Unit from EAR: " + jarFile.getAbsolutePath() + ", module: " + moduleName + ". Exception: " + e.getMessage(), e);
+ }
+ }
+ }
+
public static void scanDir(File dir, Map<String, URL> files, String path) {
for (File file : dir.listFiles()) {
if (file.isDirectory()) {
@@ -312,6 +346,7 @@
throw new UnsupportedOperationException("Unknown module type");
}
+ @SuppressWarnings({"unchecked"})
private <T>T unmarshal(Class<T> type, String descriptor, URL descriptorUrl) throws OpenEJBException {
JaxbUnmarshaller unmarshaller = unmarshallers.get(type);
if (unmarshaller == null) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?view=diff&rev=500286&r1=500285&r2=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Fri Jan 26 09:25:51 2007
@@ -24,8 +24,8 @@
import org.apache.openejb.assembler.classic.EnvEntryInfo;
import org.apache.openejb.assembler.classic.InjectionInfo;
import org.apache.openejb.assembler.classic.JndiEncInfo;
-import org.apache.openejb.assembler.classic.PersistenceContextInfo;
-import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
+import org.apache.openejb.assembler.classic.PersistenceContextReferenceInfo;
+import org.apache.openejb.assembler.classic.PersistenceUnitReferenceInfo;
import org.apache.openejb.assembler.classic.ReferenceLocationInfo;
import org.apache.openejb.assembler.classic.ResourceEnvReferenceInfo;
import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
@@ -155,10 +155,10 @@
return infos;
}
- private List<PersistenceUnitInfo> buildPersistenceUnitRefInfos(JndiConsumer jndiConsumer) {
- ArrayList<PersistenceUnitInfo> infos = new ArrayList<PersistenceUnitInfo>();
+ private List<PersistenceUnitReferenceInfo> buildPersistenceUnitRefInfos(JndiConsumer jndiConsumer) {
+ ArrayList<PersistenceUnitReferenceInfo> infos = new ArrayList<PersistenceUnitReferenceInfo>();
for (PersistenceUnitRef puRef : jndiConsumer.getPersistenceUnitRef()) {
- PersistenceUnitInfo info = new PersistenceUnitInfo();
+ PersistenceUnitReferenceInfo info = new PersistenceUnitReferenceInfo();
info.referenceName = puRef.getPersistenceUnitRefName();
info.persistenceUnitName = puRef.getPersistenceUnitName();
info.location = buildLocationInfo(puRef);
@@ -168,11 +168,11 @@
return infos;
}
- private List<PersistenceContextInfo> buildPersistenceContextRefInfos(JndiConsumer jndiConsumer) {
- ArrayList<PersistenceContextInfo> infos = new ArrayList<PersistenceContextInfo>();
+ private List<PersistenceContextReferenceInfo> buildPersistenceContextRefInfos(JndiConsumer jndiConsumer) {
+ ArrayList<PersistenceContextReferenceInfo> infos = new ArrayList<PersistenceContextReferenceInfo>();
for (PersistenceContextRef contextRef : jndiConsumer.getPersistenceContextRef()) {
- PersistenceContextInfo info = new PersistenceContextInfo();
+ PersistenceContextReferenceInfo info = new PersistenceContextReferenceInfo();
info.referenceName = contextRef.getPersistenceContextRefName();
info.persistenceUnitName = contextRef.getPersistenceUnitName();
info.location = buildLocationInfo(contextRef);
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java?view=auto&rev=500286
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java Fri Jan 26 09:25:51 2007
@@ -0,0 +1,45 @@
+/**
+ * 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 org.apache.openejb.jee.jpa.unit.Persistence;
+
+public class PersistenceModule {
+ private String rootUrl;
+ private Persistence persistence;
+
+ public PersistenceModule(String rootUrl, Persistence persistence) {
+ this.rootUrl = rootUrl;
+ this.persistence = persistence;
+ }
+
+ public String getRootUrl() {
+ return rootUrl;
+ }
+
+ public void setRootUrl(String rootUrl) {
+ this.rootUrl = rootUrl;
+ }
+
+ public Persistence getPersistence() {
+ return persistence;
+ }
+
+ public void setPersistence(Persistence persistence) {
+ this.persistence = persistence;
+ }
+}