[hibernate-commits] Hibernate SVN: r11344 - in trunk/HibernateExt/entitymanager/src: java/org/hibernate/ejb/util and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Sun Mar 25 14:24:02 EDT 2007
Author: epbernard
Date: 2007-03-25 14:24:01 -0400 (Sun, 25 Mar 2007)
New Revision: 11344
Modified:
trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Version.java
trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/util/NamingHelper.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/DataSourceInjectionTest.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/PersistenceUnitInfoImpl.java
Log:
EJB-282 ORM.xml should be searched even when excludeUnlistedClass is set up
Modified: trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-03-24 01:02:24 UTC (rev 11343)
+++ trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-03-25 18:24:01 UTC (rev 11344)
@@ -345,11 +345,10 @@
boolean[] detectArtifactForMainJar = getDetectedArtifacts( info.getProperties(), null, info.excludeUnlistedClasses() );
for ( URL jar : info.getJarFileUrls() ) {
if ( detectArtifactForOtherJars[0] ) scanForClasses( jar, packages, entities );
- if ( detectArtifactForOtherJars[1] ) scanForXmlFiles( jar, hbmFiles, searchForORMFiles );
+ scanForXmlFiles( jar, hbmFiles, XML_SEARCH.getType( detectArtifactForOtherJars[1], searchForORMFiles ) );
}
if ( detectArtifactForMainJar[0] ) scanForClasses( info.getPersistenceUnitRootUrl(), packages, entities );
- if ( detectArtifactForMainJar[1] )
- scanForXmlFiles( info.getPersistenceUnitRootUrl(), hbmFiles, searchForORMFiles );
+ scanForXmlFiles( info.getPersistenceUnitRootUrl(), hbmFiles, XML_SEARCH.getType( detectArtifactForMainJar[1], searchForORMFiles ) );
Properties properties = info.getProperties() != null ?
info.getProperties() :
@@ -599,11 +598,15 @@
return filters;
}
- private void scanForXmlFiles(URL jar, List<NamedInputStream> hbmxmls, final boolean searchforORMFiles) {
+ private void scanForXmlFiles(URL jar, List<NamedInputStream> hbmxmls, final XML_SEARCH searchType) {
+ if (searchType == XML_SEARCH.NONE) return;
+ if (jar == null) log.error( "Container is providing a null PersistenceUnitRootUrl: discovery impossible");
+ final boolean searchforORMFiles = searchType == XML_SEARCH.BOTH || searchType == XML_SEARCH.ORM_XML;
+ final boolean searchforHBMFiles = searchType == XML_SEARCH.BOTH || searchType == XML_SEARCH.HBM;
Iterator it = ArchiveBrowser.getBrowser(
jar, new ArchiveBrowser.Filter() {
public boolean accept(String filename) {
- return filename.endsWith( ".hbm.xml" )
+ return (searchforHBMFiles && filename.endsWith( ".hbm.xml" ) )
|| (searchforORMFiles && filename.endsWith( META_INF_ORM_XML ) )
;
}
@@ -617,6 +620,7 @@
}
private void scanForClasses(URL jar, List<String> packages, List<String> entities) {
+ if (jar == null) log.error( "Container is providing a null PersistenceUnitRootUrl: discovery impossible");
Iterator it = null;
try {
it = ArchiveBrowser.getBrowser(
@@ -1409,4 +1413,17 @@
cfg.addResource( path, classLoader );
return this;
}
+
+ private enum XML_SEARCH {
+ HBM,
+ ORM_XML,
+ BOTH,
+ NONE;
+
+ public static XML_SEARCH getType(boolean searchHbm, boolean searchOrm) {
+ return searchHbm ?
+ searchOrm ? XML_SEARCH.BOTH : XML_SEARCH.HBM :
+ searchOrm ? XML_SEARCH.ORM_XML : XML_SEARCH.NONE;
+ }
+ }
}
Modified: trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Version.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Version.java 2007-03-24 01:02:24 UTC (rev 11343)
+++ trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Version.java 2007-03-25 18:24:01 UTC (rev 11344)
@@ -8,7 +8,7 @@
* @author Emmanuel Bernard
*/
public class Version {
- public static final String VERSION = "3.3.0.GA";
+ public static final String VERSION = "3.3.1.GA";
private static Log log = LogFactory.getLog( Version.class );
static {
Modified: trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/util/NamingHelper.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/util/NamingHelper.java 2007-03-24 01:02:24 UTC (rev 11343)
+++ trunk/HibernateExt/entitymanager/src/java/org/hibernate/ejb/util/NamingHelper.java 2007-03-25 18:24:01 UTC (rev 11344)
@@ -27,7 +27,7 @@
public static void bind(Ejb3Configuration cfg) {
String name = cfg.getHibernateConfiguration().getProperty( HibernatePersistence.CONFIGURATION_JNDI_NAME );
if ( name == null ) {
- log.debug( "Not Ejb3Configuration to JNDI, no JNDI name configured" );
+ log.debug( "No JNDI name configured for binding Ejb3Configuration" );
}
else {
log.info( "Ejb3Configuration name: " + name );
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/DataSourceInjectionTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/DataSourceInjectionTest.java 2007-03-24 01:02:24 UTC (rev 11343)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/DataSourceInjectionTest.java 2007-03-25 18:24:01 UTC (rev 11344)
@@ -1,6 +1,7 @@
//$Id$
package org.hibernate.ejb.test.connection;
+import java.io.File;
import javax.persistence.EntityManagerFactory;
import junit.framework.TestCase;
@@ -10,8 +11,11 @@
* @author Emmanuel Bernard
*/
public class DataSourceInjectionTest extends TestCase {
- public void testDatasourceInjection() {
- PersistenceUnitInfoImpl info = new PersistenceUnitInfoImpl( new String[]{} );
+ public void testDatasourceInjection() throws Exception {
+ File current = new File(".");
+ File sub = new File(current, "puroot");
+ sub.mkdir();
+ PersistenceUnitInfoImpl info = new PersistenceUnitInfoImpl( sub.toURI().toURL(), new String[]{} );
try {
EntityManagerFactory emf = ( new HibernatePersistence() ).createContainerEntityManagerFactory( info, null );
fail( "FakeDatasource should have been used" );
@@ -19,5 +23,8 @@
catch (FakeDataSourceException fde) {
//success
}
+ finally {
+ sub.delete();
+ }
}
}
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/PersistenceUnitInfoImpl.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/PersistenceUnitInfoImpl.java 2007-03-24 01:02:24 UTC (rev 11343)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/connection/PersistenceUnitInfoImpl.java 2007-03-25 18:24:01 UTC (rev 11344)
@@ -23,12 +23,14 @@
public class PersistenceUnitInfoImpl implements PersistenceUnitInfo {
private Properties properties = new Properties();
private List<String> mappingFiles;
+ private URL puRoot;
- public PersistenceUnitInfoImpl(String[] mappingFiles) {
+ public PersistenceUnitInfoImpl(URL puRoot, String[] mappingFiles) {
this.mappingFiles = new ArrayList<String>( mappingFiles.length );
for ( String mappingFile : mappingFiles ) {
this.mappingFiles.add( mappingFile );
}
+ this.puRoot = puRoot;
}
public String getPersistenceUnitName() {
@@ -78,7 +80,7 @@
}
public URL getPersistenceUnitRootUrl() {
- return null;
+ return puRoot;
}
public boolean excludeUnlistedClasses() {
More information about the hibernate-commits
mailing list