Hibernate SVN: r11218 - in branches/Branch_3_2/HibernateExt/entitymanager/src: test/org/hibernate/ejb/test/ejb3configuration and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-19 14:36:40 -0500 (Mon, 19 Feb 2007)
New Revision: 11218
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/ProgrammaticConfTest.java
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/EventListenerConfigurator.java
Log:
EJB-257 Ejb3configuration can be build wocalling configure(String), nor any of those methods
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-19 15:41:06 UTC (rev 11217)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-19 19:36:40 UTC (rev 11218)
@@ -102,6 +102,7 @@
private static final String META_INF_ORM_XML = "META-INF/orm.xml";
private static Log log = LogFactory.getLog( Ejb3Configuration.class );
private static EntityNotFoundDelegate ejb3EntityNotFoundDelegate = new Ejb3EntityNotFoundDelegate();
+ private static Configuration DEFAULT_CONFIGURATION = new AnnotationConfiguration();
private static class Ejb3EntityNotFoundDelegate implements EntityNotFoundDelegate, Serializable {
public void handleEntityNotFound(String entityName, Serializable id) {
@@ -121,6 +122,7 @@
private boolean discardOnClose;
//made transient and not restored in deserialization on purpose, should no longer be called after restoration
private transient ClassLoader overridenClassLoader;
+ private boolean isConfigurationProcessed = false;
public Ejb3Configuration() {
@@ -719,6 +721,7 @@
thread.setContextClassLoader( overridenClassLoader );
}
try {
+ configure( (Properties)null, null );
NamingHelper.bind(this);
return new EntityManagerFactoryImpl(
cfg.buildSessionFactory(),
@@ -769,6 +772,9 @@
private Ejb3Configuration configure(
Properties properties, Map workingVars
) {
+ //TODO check for people calling more than once this method (except buildEMF)
+ if (isConfigurationProcessed) return this;
+ isConfigurationProcessed = true;
Properties preparedProperties = prepareProperties( properties, workingVars );
if ( workingVars == null ) workingVars = CollectionHelper.EMPTY_MAP;
@@ -785,9 +791,8 @@
List<String> jaccKeys = new ArrayList<String>();
- Configuration defaultConf = new AnnotationConfiguration();
- Interceptor defaultInterceptor = defaultConf.getInterceptor();
- NamingStrategy defaultNamingStrategy = defaultConf.getNamingStrategy();
+ Interceptor defaultInterceptor = DEFAULT_CONFIGURATION.getInterceptor();
+ NamingStrategy defaultNamingStrategy = DEFAULT_CONFIGURATION.getNamingStrategy();
Iterator propertyIt = preparedProperties.keySet().iterator();
while ( propertyIt.hasNext() ) {
@@ -991,7 +996,12 @@
preparedProperties.setProperty( HibernatePersistence.DISCARD_PC_ON_CLOSE, "false" );
//override the new defaults with the user defined ones
+ //copy programmatically defined properties
+ if ( cfg.getProperties() != null ) preparedProperties.putAll( cfg.getProperties() );
+ //copy them co;ing from configuration
if ( properties != null ) preparedProperties.putAll( properties );
+ //note we don't copy cfg.xml properties, since they have to be overriden
+
if (transactionType == null) {
//if it has not been set, the user use a programmatic way
transactionType = PersistenceUnitTransactionType.RESOURCE_LOCAL;
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/EventListenerConfigurator.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/EventListenerConfigurator.java 2007-02-19 15:41:06 UTC (rev 11217)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/EventListenerConfigurator.java 2007-02-19 19:36:40 UTC (rev 11218)
@@ -144,7 +144,6 @@
configuration.setListeners( type, listeners.toArray( new String[ listeners.size() ] ) );
}
}
- ;
}
public void configure() {
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/ProgrammaticConfTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/ProgrammaticConfTest.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/ProgrammaticConfTest.java 2007-02-19 19:36:40 UTC (rev 11218)
@@ -0,0 +1,57 @@
+//$Id: $
+package org.hibernate.ejb.test.ejb3configuration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Properties;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+import org.hibernate.cfg.Environment;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.ejb.test.Cat;
+import org.hibernate.util.ConfigHelper;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class ProgrammaticConfTest extends junit.framework.TestCase {
+
+ public void testProgrammaticAPI() throws Exception {
+ Ejb3Configuration conf = new Ejb3Configuration();
+ conf.addAnnotatedClass( Cat.class );
+ EntityManagerFactory emf = conf.buildEntityManagerFactory();
+ EntityManager em = emf.createEntityManager();
+ Cat cat = new Cat();
+ cat.setAge( 23 );
+ cat.setDateOfBirth( new Date() );
+ cat.setLength( 32 );
+ cat.setName( "Tomy" );
+ em.getTransaction().begin();
+ em.persist( cat );
+ em.flush();
+ assertNotNull( em.find(Cat.class, cat.getId() ) );
+ em.getTransaction().rollback();
+ }
+
+ protected Properties getProperties() throws IOException {
+ Properties properties = new Properties( );
+ InputStream stream = ConfigHelper.getResourceAsStream("/hibernate.properties");
+ try {
+ properties.load(stream);
+ }
+
+ finally {
+ try{
+ stream.close();
+ }
+ catch (IOException ioe){
+ }
+ }
+ properties.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
+ return properties;
+ }
+
+
+}
18 years, 2 months
Hibernate SVN: r11217 - in branches/Branch_3_2/HibernateExt/annotations/src: test/org/hibernate/test/annotations/xml/ejb3 and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-19 10:41:06 -0500 (Mon, 19 Feb 2007)
New Revision: 11217
Modified:
branches/Branch_3_2/HibernateExt/annotations/src/java/org/hibernate/cfg/annotations/reflection/EJB3OverridenAnnotationReader.java
branches/Branch_3_2/HibernateExt/annotations/src/test/org/hibernate/test/annotations/xml/ejb3/orm.xml
Log:
EJB-271
Modified: branches/Branch_3_2/HibernateExt/annotations/src/java/org/hibernate/cfg/annotations/reflection/EJB3OverridenAnnotationReader.java
===================================================================
--- branches/Branch_3_2/HibernateExt/annotations/src/java/org/hibernate/cfg/annotations/reflection/EJB3OverridenAnnotationReader.java 2007-02-19 15:08:01 UTC (rev 11216)
+++ branches/Branch_3_2/HibernateExt/annotations/src/java/org/hibernate/cfg/annotations/reflection/EJB3OverridenAnnotationReader.java 2007-02-19 15:41:06 UTC (rev 11217)
@@ -11,6 +11,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
import javax.persistence.AssociationOverride;
import javax.persistence.AssociationOverrides;
@@ -90,8 +92,11 @@
import org.hibernate.annotations.common.reflection.AnnotationReader;
import org.hibernate.annotations.common.reflection.Filter;
import org.hibernate.annotations.common.reflection.ReflectionUtil;
+import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.util.ReflectHelper;
import org.hibernate.util.StringHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Encapsulates the overriding of Java annotations from an EJB 3.0 descriptor.
@@ -101,6 +106,7 @@
* @author Emmanuel Bernard
*/
public class EJB3OverridenAnnotationReader implements AnnotationReader {
+ private static Log log = LogFactory.getLog( EJB3OverridenAnnotationReader.class );
private static final Map<Class, String> annotationToXml;
private static final String SCHEMA_VALIDATION = "Activate schema validation for more informations";
private static final Filter FILTER = new Filter() {
@@ -304,7 +310,8 @@
for (Annotation ann : this.annotations) {
annotationsMap.put( ann.annotationType(), ann );
}
- }
+ checkForOrphanProperties(tree);
+ }
else if ( className != null ) { //&& propertyName != null ) { //always true but less confusing
Element tree = xmlContext.getXMLTree( className, propertyName );
Annotation[] annotations = getJavaAnnotations();
@@ -356,7 +363,43 @@
}
}
- /**
+ private void checkForOrphanProperties(Element tree) {
+ Class clazz;
+ try {
+ clazz = ReflectHelper.classForName( className, this.getClass() );
+ }
+ catch (ClassNotFoundException e) {
+ throw new AssertionFailure("Unable to load class " + className );
+ }
+ Element element = tree != null ? tree.element( "attributes" ) : null;
+ //put entity.attributes elements
+ if ( element != null ) {
+ //precompute the list of properties
+ //TODO is it really useful...
+ Set<String> properties = new HashSet<String>();
+ for (Field field : clazz.getFields() ) {
+ properties.add( field.getName() );
+ }
+ for (Method method : clazz.getMethods() ) {
+ String name = method.getName();
+ if ( name.startsWith( "get" ) ) {
+ properties.add( Introspector.decapitalize( name.substring( "get".length() ) ) );
+ }
+ else if ( name.startsWith( "is" ) ) {
+ properties.add( Introspector.decapitalize( name.substring( "is".length() ) ) );
+ }
+ }
+ for ( Element subelement : (List<Element>) element.elements() ) {
+ String propertyName = subelement.attributeValue( "name" );
+ if ( ! properties.contains( propertyName ) ) {
+ log.warn("Property " + StringHelper.qualify( className, propertyName ) + " not found in class"
+ + " but described in <mapping-file/> (possible typo error)");
+ }
+ }
+ }
+ }
+
+ /**
* Addes the Annotation to the list (only if it's not null) and then returns it.
*/
private Annotation addIfNotNull(List<Annotation> annotationList, Annotation element) {
Modified: branches/Branch_3_2/HibernateExt/annotations/src/test/org/hibernate/test/annotations/xml/ejb3/orm.xml
===================================================================
--- branches/Branch_3_2/HibernateExt/annotations/src/test/org/hibernate/test/annotations/xml/ejb3/orm.xml 2007-02-19 15:08:01 UTC (rev 11216)
+++ branches/Branch_3_2/HibernateExt/annotations/src/test/org/hibernate/test/annotations/xml/ejb3/orm.xml 2007-02-19 15:41:06 UTC (rev 11217)
@@ -24,6 +24,7 @@
<column name="fld_id"/>
<generated-value strategy="TABLE" generator="generator"/>
</id>
+ <basic name="unknownProperty"/>
<many-to-one name="manufacturer" fetch="LAZY">
<join-column name="manufacturer_pk"/>
</many-to-one>
18 years, 2 months
Hibernate SVN: r11216 - branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-19 10:08:01 -0500 (Mon, 19 Feb 2007)
New Revision: 11216
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Animal.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/FindTest.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Mammal.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Reptile.java
Log:
christian
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Animal.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Animal.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Animal.java 2007-02-19 15:08:01 UTC (rev 11216)
@@ -0,0 +1,32 @@
+//$Id: $
+package org.hibernate.ejb.test.ops;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+
+/**
+ * @author Emmanuel Bernard
+ */
+@Entity
+public abstract class Animal {
+ private String name;
+ private Long id;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+ @Id
+ @GeneratedValue
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/FindTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/FindTest.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/FindTest.java 2007-02-19 15:08:01 UTC (rev 11216)
@@ -0,0 +1,33 @@
+//$Id: $
+package org.hibernate.ejb.test.ops;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.ejb.test.TestCase;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class FindTest extends TestCase {
+
+ public void testSubclassWrongId() throws Exception {
+ Mammal mammal = new Mammal();
+ mammal.setMamalNbr( 2 );
+ mammal.setName( "Human" );
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ em.persist( mammal );
+ em.flush();
+ assertNull( em.find(Reptile.class, 1l) );
+ em.getTransaction().rollback();
+ em.close();
+ }
+
+ public Class[] getAnnotatedClasses() {
+ return new Class[] {
+ Mammal.class,
+ Reptile.class,
+ Animal.class
+ };
+ }
+}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Mammal.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Mammal.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Mammal.java 2007-02-19 15:08:01 UTC (rev 11216)
@@ -0,0 +1,20 @@
+//$Id: $
+package org.hibernate.ejb.test.ops;
+
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+@Entity
+public class Mammal extends Animal {
+ private int mamalNbr;
+
+ public int getMamalNbr() {
+ return mamalNbr;
+ }
+
+ public void setMamalNbr(int mamalNbr) {
+ this.mamalNbr = mamalNbr;
+ }
+}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Reptile.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Reptile.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ops/Reptile.java 2007-02-19 15:08:01 UTC (rev 11216)
@@ -0,0 +1,20 @@
+//$Id: $
+package org.hibernate.ejb.test.ops;
+
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+@Entity
+public class Reptile extends Animal {
+ private float temperature;
+
+ public float getTemperature() {
+ return temperature;
+ }
+
+ public void setTemperature(float temperature) {
+ this.temperature = temperature;
+ }
+}
18 years, 2 months
Hibernate SVN: r11215 - in branches/Branch_3_2/HibernateExt/entitymanager/src: test/org/hibernate/ejb/test and 4 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-19 10:04:42 -0500 (Mon, 19 Feb 2007)
New Revision: 11215
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/orm.xml
branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/externaljar/META-INF/orm.xml
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Airplane.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Seat.java
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java
Log:
EJB-259 multiple orms
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-16 17:48:50 UTC (rev 11214)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-19 15:04:42 UTC (rev 11215)
@@ -336,16 +336,18 @@
List<String> packages = new ArrayList<String>();
List<String> xmlFiles = new ArrayList<String>( 50 );
if ( info.getMappingFileNames() != null ) xmlFiles.addAll( info.getMappingFileNames() );
- if ( ! xmlFiles.contains( META_INF_ORM_XML ) ) xmlFiles.add( META_INF_ORM_XML );
+ //Should always be true if the container is not dump
+ boolean searchForORMFiles = ! xmlFiles.contains( META_INF_ORM_XML );
boolean[] detectArtifactForOtherJars = getDetectedArtifacts( info.getProperties(), null, false );
boolean[] detectArtifactForMainJar = getDetectedArtifacts( info.getProperties(), null, info.excludeUnlistedClasses() );
for ( URL jar : info.getJarFileUrls() ) {
if ( detectArtifactForOtherJars[0] ) scanForClasses( jar, packages, entities );
- if ( detectArtifactForOtherJars[1] ) scanForHbmXmlFiles( jar, hbmFiles );
+ if ( detectArtifactForOtherJars[1] ) scanForXmlFiles( jar, hbmFiles, searchForORMFiles );
}
if ( detectArtifactForMainJar[0] ) scanForClasses( info.getPersistenceUnitRootUrl(), packages, entities );
- if ( detectArtifactForMainJar[1] ) scanForHbmXmlFiles( info.getPersistenceUnitRootUrl(), hbmFiles );
+ if ( detectArtifactForMainJar[1] )
+ scanForXmlFiles( info.getPersistenceUnitRootUrl(), hbmFiles, searchForORMFiles );
Properties properties = info.getProperties() != null ?
info.getProperties() :
@@ -595,11 +597,13 @@
return filters;
}
- private void scanForHbmXmlFiles(URL jar, List<NamedInputStream> hbmxmls) {
+ private void scanForXmlFiles(URL jar, List<NamedInputStream> hbmxmls, final boolean searchforORMFiles) {
Iterator it = ArchiveBrowser.getBrowser(
jar, new ArchiveBrowser.Filter() {
public boolean accept(String filename) {
- return filename.endsWith( ".hbm.xml" );
+ return filename.endsWith( ".hbm.xml" )
+ || (searchforORMFiles && filename.endsWith( META_INF_ORM_XML ) )
+ ;
}
}
);
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2007-02-16 17:48:50 UTC (rev 11214)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2007-02-19 15:04:42 UTC (rev 11215)
@@ -22,6 +22,8 @@
import org.hibernate.ejb.test.pack.explodedpar.Elephant;
import org.hibernate.ejb.test.pack.externaljar.Scooter;
import org.hibernate.ejb.test.pack.spacepar.Bug;
+import org.hibernate.ejb.test.pack.various.Seat;
+import org.hibernate.ejb.test.pack.various.Airplane;
import org.hibernate.stat.Statistics;
import org.hibernate.validator.InvalidStateException;
import org.hibernate.JDBCException;
@@ -384,7 +386,7 @@
EntityManager em = factory.createEntityManager();
Scooter s = new Scooter();
s.setModel( "Abadah" );
- s.setSpeed( new Long( 85 ) );
+ s.setSpeed( 85l );
em.getTransaction().begin();
em.persist( s );
em.getTransaction().commit();
@@ -398,6 +400,20 @@
em.close();
}
+ public void testORMFileOnMainAndExplicitJars() throws Exception {
+ EntityManager em = factory.createEntityManager();
+ Seat seat = new Seat();
+ seat.setNumber( "3B" );
+ Airplane plane = new Airplane();
+ plane.setSerialNumber( "75924418409052355");
+ em.getTransaction().begin();
+ em.persist( seat );
+ em.persist( plane );
+ em.flush();
+ em.getTransaction().rollback();
+ em.close();
+ }
+
public PackagedEntityManagerTest() {
super();
}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Airplane.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Airplane.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Airplane.java 2007-02-19 15:04:42 UTC (rev 11215)
@@ -0,0 +1,17 @@
+//$Id: $
+package org.hibernate.ejb.test.pack.various;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Airplane {
+ private String serialNumber;
+
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Seat.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Seat.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/pack/various/Seat.java 2007-02-19 15:04:42 UTC (rev 11215)
@@ -0,0 +1,17 @@
+//$Id: $
+package org.hibernate.ejb.test.pack.various;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Seat {
+ private String number;
+
+ public String getNumber() {
+ return number;
+ }
+
+ public void setNumber(String number) {
+ this.number = number;
+ }
+}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/orm.xml
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/orm.xml (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/orm.xml 2007-02-19 15:04:42 UTC (rev 11215)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0"
+ >
+ <package>org.hibernate.ejb.test.pack.various</package>
+ <entity class="Seat" access="PROPERTY" metadata-complete="true">
+ <attributes>
+ <id name="number"/>
+ </attributes>
+ </entity>
+</entity-mappings>
\ No newline at end of file
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/externaljar/META-INF/orm.xml
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/externaljar/META-INF/orm.xml (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test-resources/externaljar/META-INF/orm.xml 2007-02-19 15:04:42 UTC (rev 11215)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0"
+ >
+ <package>org.hibernate.ejb.test.pack.various</package>
+ <entity class="Airplane" metadata-complete="true" access="PROPERTY">
+ <attributes>
+ <id name="serialNumber"/>
+ </attributes>
+ </entity>
+</entity-mappings>
\ No newline at end of file
18 years, 2 months
Hibernate SVN: r11214 - branches/Branch_3_2/Hibernate3/src/org/hibernate/dialect.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-02-16 12:48:50 -0500 (Fri, 16 Feb 2007)
New Revision: 11214
Modified:
branches/Branch_3_2/Hibernate3/src/org/hibernate/dialect/Dialect.java
Log:
changes for terradata certification
Modified: branches/Branch_3_2/Hibernate3/src/org/hibernate/dialect/Dialect.java
===================================================================
--- branches/Branch_3_2/Hibernate3/src/org/hibernate/dialect/Dialect.java 2007-02-16 17:48:11 UTC (rev 11213)
+++ branches/Branch_3_2/Hibernate3/src/org/hibernate/dialect/Dialect.java 2007-02-16 17:48:50 UTC (rev 11214)
@@ -1675,4 +1675,14 @@
public boolean doesRepeatableReadCauseReadersToBlockWriters() {
return false;
}
+
+ /**
+ * Does this dialect support using a JDBC bind parameter as an argument
+ * to a function or procedure call?
+ *
+ * @return True if the database supports accepting bind params as args; false otherwise.
+ */
+ public boolean supportsBindAsCallableArgument() {
+ return true;
+ }
}
18 years, 2 months
Hibernate SVN: r11213 - trunk/Hibernate3/src/org/hibernate/dialect.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2007-02-16 12:48:11 -0500 (Fri, 16 Feb 2007)
New Revision: 11213
Modified:
trunk/Hibernate3/src/org/hibernate/dialect/Dialect.java
Log:
changes for terradata certification
Modified: trunk/Hibernate3/src/org/hibernate/dialect/Dialect.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/dialect/Dialect.java 2007-02-16 04:26:52 UTC (rev 11212)
+++ trunk/Hibernate3/src/org/hibernate/dialect/Dialect.java 2007-02-16 17:48:11 UTC (rev 11213)
@@ -1674,4 +1674,14 @@
public boolean doesRepeatableReadCauseReadersToBlockWriters() {
return false;
}
+
+ /**
+ * Does this dialect support using a JDBC bind parameter as an argument
+ * to a function or procedure call?
+ *
+ * @return True if the database supports accepting bind params as args; false otherwise.
+ */
+ public boolean supportsBindAsCallableArgument() {
+ return true;
+ }
}
18 years, 2 months
Hibernate SVN: r11212 - branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-15 23:26:52 -0500 (Thu, 15 Feb 2007)
New Revision: 11212
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
Log:
Use BufferedInputStreams on xml file reading and JavassistClass reading
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-16 03:51:12 UTC (rev 11211)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-16 04:26:52 UTC (rev 11212)
@@ -277,6 +277,7 @@
while ( homogeneousEntry.hasNext() ) {
JarVisitor.Entry entry = (JarVisitor.Entry) homogeneousEntry.next();
if ( filters[index] instanceof JarVisitor.ClassFilter ) {
+ //TODO only add entry if there is annotations (Javassist)
classes.add( entry.getName() );
}
else if ( filters[index] instanceof JarVisitor.PackageFilter ) {
@@ -628,7 +629,7 @@
// defined.
while ( it.hasNext() ) {
InputStream stream = (InputStream) it.next();
- DataInputStream dstream = new DataInputStream( stream );
+ DataInputStream dstream = new DataInputStream( new BufferedInputStream( stream ) );
ClassFile cf = null;
try {
try {
@@ -890,6 +891,7 @@
);
addNamedAnnotatedClasses( this, classNames, workingVars );
}
+ //TODO apparently only used for Tests, get rid of it?
if ( workingVars.containsKey( HibernatePersistence.LOADED_CLASSES ) ) {
Collection<Class> classes = (Collection<Class>) workingVars.get( HibernatePersistence.LOADED_CLASSES );
for ( Class clazz : classes ) {
@@ -945,7 +947,7 @@
for ( NamedInputStream is : hbmXmlFiles ) {
try {
//addInputStream has the responsibility to close the stream
- cfg.addInputStream( is.getStream() );
+ cfg.addInputStream( new BufferedInputStream( is.getStream() ) );
}
catch (MappingException me) {
//try our best to give the file name
18 years, 2 months
Hibernate SVN: r11211 - in branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb: packaging and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-15 22:51:12 -0500 (Thu, 15 Feb 2007)
New Revision: 11211
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/NamedInputStream.java
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/PersistenceMetadata.java
Log:
EJB-262 better usability by providing XML file name on error
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-15 22:04:11 UTC (rev 11210)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/Ejb3Configuration.java 2007-02-16 03:51:12 UTC (rev 11211)
@@ -59,6 +59,7 @@
import org.hibernate.ejb.packaging.JarVisitor;
import org.hibernate.ejb.packaging.PersistenceMetadata;
import org.hibernate.ejb.packaging.PersistenceXmlLoader;
+import org.hibernate.ejb.packaging.NamedInputStream;
import org.hibernate.ejb.transaction.JoinableCMTTransactionFactory;
import org.hibernate.ejb.util.ConfigurationHelper;
import org.hibernate.ejb.util.LogHelper;
@@ -221,16 +222,19 @@
metadata.getProvider()
) ) {
//correct provider
- URL jarURL = JarVisitor.getJarURLFromURLEntry( url, "/META-INF/persistence.xml" );
- JarVisitor.Filter[] persistenceXmlFilter = getFilters( metadata, integration, metadata.getExcludeUnlistedClasses() );
- JarVisitor visitor = JarVisitor.getVisitor( jarURL, persistenceXmlFilter );
+
+ //lazy compute the visitor if possible to avoid useless exceptions if an unexpected state happens
+ JarVisitor visitor = null;
+
if ( metadata.getName() == null ) {
+ visitor = getMainJarVisitor( url, metadata, integration );
metadata.setName( visitor.getUnqualifiedJarName() );
}
if ( persistenceUnitName == null && xmls.hasMoreElements() ) {
throw new PersistenceException( "No name provided and several persistence units found" );
}
else if ( persistenceUnitName == null || metadata.getName().equals( persistenceUnitName ) ) {
+ if (visitor == null) visitor = getMainJarVisitor( url, metadata, integration );
addMetadataFromVisitor( visitor, metadata );
JarVisitor.Filter[] otherXmlFilter = getFilters( metadata, integration, false );
for ( String jarFile : metadata.getJarFiles() ) {
@@ -254,13 +258,20 @@
}
}
+ private JarVisitor getMainJarVisitor(URL url, PersistenceMetadata metadata, Map integration) {
+ URL jarURL = JarVisitor.getJarURLFromURLEntry( url, "/META-INF/persistence.xml" );
+ JarVisitor.Filter[] persistenceXmlFilter = getFilters( metadata, integration, metadata.getExcludeUnlistedClasses() );
+ JarVisitor visitor = JarVisitor.getVisitor( jarURL, persistenceXmlFilter );
+ return visitor;
+ }
+
private static void addMetadataFromVisitor(JarVisitor visitor, PersistenceMetadata metadata) throws IOException {
Set[] entries = visitor.getMatchingEntries();
JarVisitor.Filter[] filters = visitor.getFilters();
int size = filters.length;
List<String> classes = metadata.getClasses();
List<String> packages = metadata.getPackages();
- List<InputStream> hbmFiles = metadata.getHbmfiles();
+ List<NamedInputStream> hbmFiles = metadata.getHbmfiles();
for ( int index = 0; index < size ; index++ ) {
Iterator homogeneousEntry = entries[index].iterator();
while ( homogeneousEntry.hasNext() ) {
@@ -272,7 +283,7 @@
packages.add( entry.getName() );
}
else if ( filters[index] instanceof JarVisitor.FileFilter ) {
- hbmFiles.add( entry.getInputStream() );
+ hbmFiles.add( new NamedInputStream( entry.getName(), entry.getInputStream() ) );
metadata.getMappingFiles().remove( entry.getName() );
}
}
@@ -320,17 +331,11 @@
workingVars.put( HibernatePersistence.PERSISTENCE_UNIT_NAME, info.getPersistenceUnitName() );
List<String> entities = new ArrayList<String>( 50 );
if ( info.getManagedClassNames() != null ) entities.addAll( info.getManagedClassNames() );
- List<InputStream> hbmFiles = new ArrayList<InputStream>();
+ List<NamedInputStream> hbmFiles = new ArrayList<NamedInputStream>();
List<String> packages = new ArrayList<String>();
List<String> xmlFiles = new ArrayList<String>( 50 );
if ( info.getMappingFileNames() != null ) xmlFiles.addAll( info.getMappingFileNames() );
if ( ! xmlFiles.contains( META_INF_ORM_XML ) ) xmlFiles.add( META_INF_ORM_XML );
- // Object overridenTxType = integration.get( HibernatePersistence.TRANSACTION_TYPE );
- // if (overridenTxType != null) {
- // defineTransactionType( overridenTxType, info.getPersistenceUnitName() );
- // }
- // else {
- // }
boolean[] detectArtifactForOtherJars = getDetectedArtifacts( info.getProperties(), null, false );
boolean[] detectArtifactForMainJar = getDetectedArtifacts( info.getProperties(), null, info.excludeUnlistedClasses() );
@@ -445,7 +450,7 @@
errors.clear();
org.dom4j.Document doc = saxReader.read( is );
if ( errors.size() != 0 ) {
- throw new MappingException( "invalid mapping", (Throwable) errors.get( 0 ) );
+ throw new MappingException( "invalid mapping: " + xmlFile, (Throwable) errors.get( 0 ) );
}
Element rootElement = doc.getRootElement();
if ( rootElement != null && "entity-mappings".equals( rootElement.getName() ) ) {
@@ -529,7 +534,7 @@
properties.getProperty( HibernatePersistence.AUTODETECTION) :
detect;
if (detect == null && excludeIfNotOverriden) {
- //not overriden so we comply with the spec
+ //not overriden through HibernatePersistence.AUTODETECTION so we comply with the spec excludeUnlistedClasses
return result;
}
else if (detect == null){
@@ -589,7 +594,7 @@
return filters;
}
- private void scanForHbmXmlFiles(URL jar, List<InputStream> hbmxmls) {
+ private void scanForHbmXmlFiles(URL jar, List<NamedInputStream> hbmxmls) {
Iterator it = ArchiveBrowser.getBrowser(
jar, new ArchiveBrowser.Filter() {
public boolean accept(String filename) {
@@ -600,7 +605,7 @@
while ( it.hasNext() ) {
InputStream stream = (InputStream) it.next();
- hbmxmls.add( stream );
+ hbmxmls.add( new NamedInputStream("", stream) );
}
}
@@ -934,12 +939,23 @@
}
}
if ( workingVars.containsKey( HibernatePersistence.HBXML_FILES ) ) {
- Collection<InputStream> hbmXmlFiles = (Collection<InputStream>) workingVars.get(
+ Collection<NamedInputStream> hbmXmlFiles = (Collection<NamedInputStream>) workingVars.get(
HibernatePersistence.HBXML_FILES
);
- for ( InputStream is : hbmXmlFiles ) {
- //addInputStream has the responsibility to close the stream
- cfg.addInputStream( is );
+ for ( NamedInputStream is : hbmXmlFiles ) {
+ try {
+ //addInputStream has the responsibility to close the stream
+ cfg.addInputStream( is.getStream() );
+ }
+ catch (MappingException me) {
+ //try our best to give the file name
+ if ( StringHelper.isEmpty( is.getName() ) ) {
+ throw me;
+ }
+ else {
+ throw new MappingException("Error while parsing file: " + is.getName(), me );
+ }
+ }
}
}
}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/NamedInputStream.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/NamedInputStream.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/NamedInputStream.java 2007-02-16 03:51:12 UTC (rev 11211)
@@ -0,0 +1,33 @@
+//$Id: $
+package org.hibernate.ejb.packaging;
+
+import java.io.InputStream;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class NamedInputStream {
+ public NamedInputStream(String name, InputStream stream) {
+ this.name = name;
+ this.stream = stream;
+ }
+
+ private String name;
+ private InputStream stream;
+
+ public InputStream getStream() {
+ return stream;
+ }
+
+ public void setStream(InputStream stream) {
+ this.stream = stream;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/PersistenceMetadata.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/PersistenceMetadata.java 2007-02-15 22:04:11 UTC (rev 11210)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/PersistenceMetadata.java 2007-02-16 03:51:12 UTC (rev 11211)
@@ -26,7 +26,7 @@
private List<String> packages = new ArrayList<String>();
private List<String> mappingFiles = new ArrayList<String>();
private Set<String> jarFiles = new HashSet<String>();
- private List<InputStream> hbmfiles = new ArrayList<InputStream>();
+ private List<NamedInputStream> hbmfiles = new ArrayList<NamedInputStream>();
private Properties props = new Properties();
private boolean excludeUnlistedClasses = false;
@@ -113,11 +113,14 @@
this.props = props;
}
- public List<InputStream> getHbmfiles() {
+ public List<NamedInputStream> getHbmfiles() {
return hbmfiles;
}
- public void setHbmfiles(List<InputStream> hbmfiles) {
+ /**
+ * @deprecated use getHbmfiles() rather
+ */
+ public void setHbmfiles(List<NamedInputStream> hbmfiles) {
this.hbmfiles = hbmfiles;
}
18 years, 2 months
Hibernate SVN: r11210 - branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-15 17:04:11 -0500 (Thu, 15 Feb 2007)
New Revision: 11210
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/InputStreamZippedJarVisitor.java
Log:
EJB-242 be friendly on Eclipse bugs
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/InputStreamZippedJarVisitor.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/InputStreamZippedJarVisitor.java 2007-02-15 21:08:27 UTC (rev 11209)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/packaging/InputStreamZippedJarVisitor.java 2007-02-15 22:04:11 UTC (rev 11210)
@@ -32,7 +32,8 @@
try {
jis = new JarInputStream( jarUrl.openStream() );
}
- catch (IOException ze) {
+ catch (Exception ze) {
+ //really should catch IOException but Eclipse is buggy and raise NPE...
log.warn( "Unable to find file (ignored): " + jarUrl, ze );
return;
}
18 years, 2 months
Hibernate SVN: r11209 - branches/Branch_3_2/HibernateExt/entitymanager/lib.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2007-02-15 16:08:27 -0500 (Thu, 15 Feb 2007)
New Revision: 11209
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/lib/README.txt
branches/Branch_3_2/HibernateExt/entitymanager/lib/jboss-archive-browsing.jar
Log:
EJB-269 include a archive browser handling jar:file for WLS
Modified: branches/Branch_3_2/HibernateExt/entitymanager/lib/README.txt
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/lib/README.txt 2007-02-15 06:07:38 UTC (rev 11208)
+++ branches/Branch_3_2/HibernateExt/entitymanager/lib/README.txt 2007-02-15 21:08:27 UTC (rev 11209)
@@ -11,7 +11,7 @@
hibernate3.jar: required
hibernate core dependencies: required (see Hibernate Core for more information)
javassist.jar: required (part of Hibernate Core dependencies)
-jboss-archive-browsing (5.0.0alpha build: CVSTag=HEAD date=200607201 119): required
+jboss-archive-browsing (jboss-common-core 2.0.2.Alpha): required
Test
Modified: branches/Branch_3_2/HibernateExt/entitymanager/lib/jboss-archive-browsing.jar
===================================================================
(Binary files differ)
18 years, 2 months