Hibernate SVN: r18604 - core/trunk/annotations/src/test/java/org/hibernate/test/annotations.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-01-21 21:16:10 -0500 (Thu, 21 Jan 2010)
New Revision: 18604
Modified:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
Log:
HHH-4822 Added handling of sessions == null in case openSession is called
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-22 01:55:20 UTC (rev 18603)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-22 02:16:10 UTC (rev 18604)
@@ -53,15 +53,28 @@
}
public Session openSession() throws HibernateException {
+ rebuildSessionFactory();
session = getSessions().openSession();
return session;
}
public Session openSession(Interceptor interceptor) throws HibernateException {
+ rebuildSessionFactory();
session = getSessions().openSession( interceptor );
return session;
}
+ private void rebuildSessionFactory() {
+ if ( sessions == null ) {
+ try {
+ buildConfiguration();
+ }
+ catch ( Exception e ) {
+ throw new HibernateException( e );
+ }
+ }
+ }
+
protected void setSessions(SessionFactory sessions) {
TestCase.sessions = sessions;
}
@@ -72,7 +85,6 @@
@Override
protected void buildConfiguration() throws Exception {
-
if ( getSessions() != null ) {
getSessions().close();
}
14 years, 3 months
Hibernate SVN: r18603 - in core/trunk: entitymanager/src/main/java/org/hibernate/ejb and 4 other directories.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2010-01-21 20:55:20 -0500 (Thu, 21 Jan 2010)
New Revision: 18603
Added:
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/util/CacheModeHelper.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SharedCacheModesTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SimpleEntity.java
Modified:
core/trunk/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractQueryImpl.java
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AvailableSettings.java
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/HibernateEntityManagerImplementor.java
Log:
HHH-4660 - Support Cache Retrieve Mode and Cache Store Mode Properties
Modified: core/trunk/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java 2010-01-21 20:48:59 UTC (rev 18602)
+++ core/trunk/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -144,6 +144,10 @@
return this;
}
+ public CacheMode getCacheMode() {
+ return cacheMode;
+ }
+
public Query setCacheable(boolean cacheable) {
this.cacheable = cacheable;
return this;
Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java 2010-01-21 20:48:59 UTC (rev 18602)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
@@ -33,6 +33,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.CacheStoreMode;
import javax.persistence.EntityNotFoundException;
import javax.persistence.EntityTransaction;
import javax.persistence.FlushModeType;
@@ -66,6 +68,7 @@
import org.slf4j.LoggerFactory;
import org.hibernate.AssertionFailure;
+import org.hibernate.CacheMode;
import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
import org.hibernate.LockMode;
@@ -87,6 +90,7 @@
import org.hibernate.ejb.criteria.ValueHandlerFactory;
import org.hibernate.ejb.criteria.expression.CompoundSelectionImpl;
import org.hibernate.ejb.transaction.JoinableCMTTransaction;
+import org.hibernate.ejb.util.CacheModeHelper;
import org.hibernate.ejb.util.ConfigurationHelper;
import org.hibernate.engine.SessionFactoryImplementor;
import org.hibernate.engine.SessionImplementor;
@@ -110,6 +114,8 @@
entityManagerSpecificProperties.add( AvailableSettings.LOCK_SCOPE );
entityManagerSpecificProperties.add( AvailableSettings.LOCK_TIMEOUT );
entityManagerSpecificProperties.add( AvailableSettings.FLUSH_MODE );
+ entityManagerSpecificProperties.add( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE );
+ entityManagerSpecificProperties.add( AvailableSettings.SHARED_CACHE_STORE_MODE );
}
private EntityManagerFactoryImpl entityManagerFactory;
@@ -152,8 +158,30 @@
private void applyProperties() {
getSession().setFlushMode( ConfigurationHelper.getFlushMode( properties.get( AvailableSettings.FLUSH_MODE ) ) );
setLockOptions(this.properties, this.lockOptions);
+ getSession().setCacheMode(
+ CacheModeHelper.interpretCacheMode(
+ currentCacheStoreMode(),
+ currentCacheRetrieveMode()
+ )
+ );
}
+ private CacheRetrieveMode currentCacheRetrieveMode() {
+ return determineCacheRetrieveMode( properties );
+ }
+
+ private CacheRetrieveMode determineCacheRetrieveMode(Map<String,Object> settings) {
+ return (CacheRetrieveMode) settings.get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE );
+ }
+
+ private CacheStoreMode currentCacheStoreMode() {
+ return determineCacheStoreMode( properties );
+ }
+
+ private CacheStoreMode determineCacheStoreMode(Map<String,Object> settings) {
+ return (CacheStoreMode) properties.get( AvailableSettings.SHARED_CACHE_STORE_MODE );
+ }
+
private void setLockOptions(Map<String, Object> props, LockOptions options) {
Object lockScope = props.get( AvailableSettings.LOCK_SCOPE );
if ( lockScope instanceof String && PessimisticLockScope.valueOf( ( String ) lockScope ) == PessimisticLockScope.EXTENDED ) {
@@ -194,15 +222,21 @@
* set.
*/
private void setDefaultProperties() {
- if (properties.get( AvailableSettings.FLUSH_MODE ) == null) {
+ if ( properties.get( AvailableSettings.FLUSH_MODE ) == null) {
properties.put( AvailableSettings.FLUSH_MODE, getSession().getFlushMode().toString() );
}
- if (properties.get( AvailableSettings.LOCK_SCOPE ) == null) {
+ if ( properties.get( AvailableSettings.LOCK_SCOPE ) == null) {
this.properties.put( AvailableSettings.LOCK_SCOPE, PessimisticLockScope.EXTENDED.name() );
}
- if (properties.get( AvailableSettings.LOCK_TIMEOUT ) == null) {
+ if ( properties.get( AvailableSettings.LOCK_TIMEOUT ) == null) {
properties.put( AvailableSettings.LOCK_TIMEOUT, LockOptions.WAIT_FOREVER );
}
+ if ( properties.get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) == null) {
+ properties.put( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE, CacheModeHelper.DEFAULT_RETRIEVE_MODE );
+ }
+ if ( properties.get( AvailableSettings.SHARED_CACHE_STORE_MODE ) == null) {
+ properties.put( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheModeHelper.DEFAULT_STORE_MODE );
+ }
}
public Query createQuery(String jpaqlString) {
@@ -484,8 +518,11 @@
}
public <A> A find(Class<A> entityClass, Object primaryKey, LockModeType lockModeType, Map<String, Object> properties) {
+ CacheMode previousCacheMode = getSession().getCacheMode();
+ CacheMode cacheMode = determineAppropriateLocalCacheMode( properties );
LockOptions lockOptions = null;
try {
+ getSession().setCacheMode( cacheMode );
if ( lockModeType != null ) {
return ( A ) getSession().get(
entityClass, ( Serializable ) primaryKey,
@@ -515,8 +552,29 @@
catch ( HibernateException he ) {
throw convert( he , lockOptions );
}
+ finally {
+ getSession().setCacheMode( previousCacheMode );
+ }
}
+ public CacheMode determineAppropriateLocalCacheMode(Map<String, Object> localProperties) {
+ CacheRetrieveMode retrieveMode = null;
+ CacheStoreMode storeMode = null;
+ if ( localProperties != null ) {
+ retrieveMode = determineCacheRetrieveMode( localProperties );
+ storeMode = determineCacheStoreMode( localProperties );
+ }
+ if ( retrieveMode == null ) {
+ // use the EM setting
+ retrieveMode = determineCacheRetrieveMode( this.properties );
+ }
+ if ( storeMode == null ) {
+ // use the EM setting
+ storeMode = determineCacheStoreMode( this.properties );
+ }
+ return CacheModeHelper.interpretCacheMode( storeMode, retrieveMode );
+ }
+
private void checkTransactionNeeded() {
if ( persistenceContextType == PersistenceContextType.TRANSACTION && !isTransactionInProgress() ) {
//no need to mark as rollback, no tx in progress
@@ -583,8 +641,11 @@
public void refresh(Object entity, LockModeType lockModeType, Map<String, Object> properties) {
checkTransactionNeeded();
+ CacheMode previousCacheMode = getSession().getCacheMode();
+ CacheMode localCacheMode = determineAppropriateLocalCacheMode( properties );
LockOptions lockOptions = null;
try {
+ getSession().setCacheMode( localCacheMode );
if ( !getSession().contains( entity ) ) {
throw new IllegalArgumentException( "Entity not managed" );
}
@@ -599,6 +660,9 @@
catch ( HibernateException he ) {
throw convert( he, lockOptions);
}
+ finally {
+ getSession().setCacheMode( previousCacheMode );
+ }
}
public boolean contains(Object entity) {
Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractQueryImpl.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractQueryImpl.java 2010-01-21 20:48:59 UTC (rev 18602)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractQueryImpl.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -27,6 +27,8 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.CacheStoreMode;
import javax.persistence.FlushModeType;
import javax.persistence.Parameter;
import javax.persistence.TransactionRequiredException;
@@ -47,6 +49,8 @@
import static org.hibernate.ejb.QueryHints.HINT_FLUSH_MODE;
import static org.hibernate.ejb.QueryHints.HINT_READONLY;
import static org.hibernate.ejb.QueryHints.HINT_TIMEOUT;
+
+import org.hibernate.ejb.util.CacheModeHelper;
import org.hibernate.ejb.util.ConfigurationHelper;
import org.hibernate.hql.QueryExecutionRequestException;
@@ -215,6 +219,34 @@
else if ( HINT_FLUSH_MODE.equals( hintName ) ) {
applyFlushMode( ConfigurationHelper.getFlushMode( value ) );
}
+ else if ( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE.equals( hintName ) ) {
+ final CacheRetrieveMode retrieveMode = (CacheRetrieveMode) value;
+
+ CacheStoreMode storeMode = hints != null
+ ? (CacheStoreMode) hints.get( AvailableSettings.SHARED_CACHE_STORE_MODE )
+ : null;
+ if ( storeMode == null ) {
+ storeMode = (CacheStoreMode) entityManager.getProperties()
+ .get( AvailableSettings.SHARED_CACHE_STORE_MODE );
+ }
+ applyCacheMode(
+ CacheModeHelper.interpretCacheMode( storeMode, retrieveMode )
+ );
+ }
+ else if ( AvailableSettings.SHARED_CACHE_STORE_MODE.equals( hintName ) ) {
+ final CacheStoreMode storeMode = (CacheStoreMode) value;
+
+ CacheRetrieveMode retrieveMode = hints != null
+ ? (CacheRetrieveMode) hints.get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE )
+ : null;
+ if ( retrieveMode == null ) {
+ retrieveMode = (CacheRetrieveMode) entityManager.getProperties()
+ .get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE );
+ }
+ applyCacheMode(
+ CacheModeHelper.interpretCacheMode( storeMode, retrieveMode )
+ );
+ }
/* TODO:
else if ( "org.hibernate.lockMode".equals( hintName ) ) {
query.setAliasLockMode( alias, lockMode );
Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AvailableSettings.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AvailableSettings.java 2010-01-21 20:48:59 UTC (rev 18602)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AvailableSettings.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -113,14 +113,36 @@
* enabled as per the rules defined in JPA 2 section 3.1.7.
* <p/>
* See JPA 2 sections 9.4.3 and 8.2.1.7
+ * @see javax.persistence.SharedCacheMode
*/
public static final String SHARED_CACHE_MODE = "javax.persistence.sharedCache.mode";
/**
+ * NOTE : Not a valid EMF property...
+ * <p/>
+ * Used to indicate if the provider should attempt to retrieve requested data
+ * in the shared cache.
+ *
+ * @see javax.persistence.CacheRetrieveMode
+ */
+ public static final String SHARED_CACHE_RETRIEVE_MODE ="javax.persistence.cache.retrieveMode";
+
+ /**
+ * NOTE : Not a valid EMF property...
+ * <p/>
+ * Used to indicate if the provider should attempt to store data loaded from the database
+ * in the shared cache.
+ *
+ * @see javax.persistence.CacheStoreMode
+ */
+ public static final String SHARED_CACHE_STORE_MODE ="javax.persistence.cache.storeMode";
+
+ /**
* Used to indicate what form of automatic validation is in effect as per rules defined
* in JPA 2 section 3.6.1.1
* <p/>
* See JPA 2 sections 9.4.3 and 8.2.1.8
+ * @see javax.persistence.ValidationMode
*/
public static final String VALIDATION_MODE = "javax.persistence.validation.mode";
Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/HibernateEntityManagerImplementor.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/HibernateEntityManagerImplementor.java 2010-01-21 20:48:59 UTC (rev 18602)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/HibernateEntityManagerImplementor.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -28,6 +28,7 @@
import javax.persistence.TypedQuery;
import javax.persistence.criteria.Selection;
+import org.hibernate.CacheMode;
import org.hibernate.HibernateException;
import org.hibernate.StaleStateException;
import org.hibernate.LockOptions;
Added: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/util/CacheModeHelper.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/util/CacheModeHelper.java (rev 0)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/util/CacheModeHelper.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -0,0 +1,100 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.ejb.util;
+
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.CacheStoreMode;
+
+import org.hibernate.CacheMode;
+
+/**
+ * TODO : javadoc
+ *
+ * @author Steve Ebersole
+ */
+public class CacheModeHelper {
+ public static final CacheMode DEFAULT_LEGACY_MODE = CacheMode.NORMAL;
+ public static final CacheStoreMode DEFAULT_STORE_MODE = CacheStoreMode.USE;
+ public static final CacheRetrieveMode DEFAULT_RETRIEVE_MODE = CacheRetrieveMode.USE;
+
+ /**
+ * Given a JPA {@link CacheStoreMode} and {@link CacheRetrieveMode}, determine the corresponding
+ * legacy Hibernate {@link CacheMode}.
+ *
+ * @param storeMode The JPA shared-cache store mode.
+ * @param retrieveMode The JPA shared-cache retrieve mode.
+ *
+ * @return Corresponding {@link CacheMode}.
+ */
+ public static CacheMode interpretCacheMode(CacheStoreMode storeMode, CacheRetrieveMode retrieveMode) {
+ if ( storeMode == null ) {
+ storeMode = DEFAULT_STORE_MODE;
+ }
+ if ( retrieveMode == null ) {
+ retrieveMode = DEFAULT_RETRIEVE_MODE;
+ }
+
+ final boolean get = ( CacheRetrieveMode.USE == retrieveMode );
+
+ switch ( storeMode ) {
+ case USE: {
+ return get ? CacheMode.NORMAL : CacheMode.PUT;
+ }
+ case REFRESH: {
+ // really (get == true) here is a bit of an invalid combo...
+ return CacheMode.REFRESH;
+ }
+ case BYPASS: {
+ return get ? CacheMode.GET : CacheMode.IGNORE;
+ }
+ default: {
+ throw new IllegalStateException( "huh? :)" );
+ }
+ }
+ }
+
+ public static CacheStoreMode interpretCacheStoreMode(CacheMode cacheMode) {
+ if ( cacheMode == null ) {
+ cacheMode = DEFAULT_LEGACY_MODE;
+ }
+
+ if ( CacheMode.REFRESH == cacheMode ) {
+ return CacheStoreMode.REFRESH;
+ }
+ if ( CacheMode.NORMAL == cacheMode || CacheMode.PUT == cacheMode ) {
+ return CacheStoreMode.USE;
+ }
+ return CacheStoreMode.BYPASS;
+ }
+
+ public static CacheRetrieveMode interpretCacheRetrieveMode(CacheMode cacheMode) {
+ if ( cacheMode == null ) {
+ cacheMode = DEFAULT_LEGACY_MODE;
+ }
+
+ return ( CacheMode.NORMAL == cacheMode || CacheMode.GET == cacheMode )
+ ? CacheRetrieveMode.USE
+ : CacheRetrieveMode.BYPASS;
+ }
+}
Added: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SharedCacheModesTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SharedCacheModesTest.java (rev 0)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SharedCacheModesTest.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -0,0 +1,120 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.ejb.test.cacheable.cachemodes;
+
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.CacheStoreMode;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.hibernate.CacheMode;
+import org.hibernate.Session;
+import org.hibernate.ejb.AvailableSettings;
+import org.hibernate.ejb.HibernateEntityManager;
+import org.hibernate.ejb.HibernateQuery;
+import org.hibernate.ejb.test.TestCase;
+import org.hibernate.impl.AbstractQueryImpl;
+
+/**
+ * TODO : javadoc
+ *
+ * @author Steve Ebersole
+ */
+public class SharedCacheModesTest extends TestCase {
+ @Override
+ public Class[] getAnnotatedClasses() {
+ return new Class[] { SimpleEntity.class };
+ }
+
+ // this is all i can do for now testing-wise since I did not implement @Cacheable first ;)
+
+ public void testEntityManagerCacheModes() {
+
+ EntityManager em;
+ Session session;
+
+ em = getOrCreateEntityManager();
+ session = ( (HibernateEntityManager) em ).getSession();
+
+ // defaults...
+ assertEquals( CacheStoreMode.USE, em.getProperties().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheRetrieveMode.USE, em.getProperties().get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) );
+ assertEquals( CacheMode.NORMAL, session.getCacheMode() );
+
+ // overrides...
+ em.setProperty( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.REFRESH );
+ assertEquals( CacheStoreMode.REFRESH, em.getProperties().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.REFRESH, session.getCacheMode() );
+
+ em.setProperty( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.BYPASS );
+ assertEquals( CacheStoreMode.BYPASS, em.getProperties().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.GET, session.getCacheMode() );
+
+ em.setProperty( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS );
+ assertEquals( CacheRetrieveMode.BYPASS, em.getProperties().get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) );
+ assertEquals( CacheMode.IGNORE, session.getCacheMode() );
+
+ em.setProperty( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.USE );
+ assertEquals( CacheStoreMode.USE, em.getProperties().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.PUT, session.getCacheMode() );
+
+ em.setProperty( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.REFRESH );
+ assertEquals( CacheStoreMode.REFRESH, em.getProperties().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.REFRESH, session.getCacheMode() );
+ }
+
+ public void testQueryCacheModes() {
+ EntityManager em = getOrCreateEntityManager();
+ Query jpaQuery = em.createQuery( "from SimpleEntity" );
+ AbstractQueryImpl hibQuery = (AbstractQueryImpl) ( (HibernateQuery) jpaQuery ).getHibernateQuery();
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.USE );
+ assertEquals( CacheStoreMode.USE, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.NORMAL, hibQuery.getCacheMode() );
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.BYPASS );
+ assertEquals( CacheStoreMode.BYPASS, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.GET, hibQuery.getCacheMode() );
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.REFRESH );
+ assertEquals( CacheStoreMode.REFRESH, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.REFRESH, hibQuery.getCacheMode() );
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS );
+ assertEquals( CacheRetrieveMode.BYPASS, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) );
+ assertEquals( CacheStoreMode.REFRESH, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.REFRESH, hibQuery.getCacheMode() );
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.BYPASS );
+ assertEquals( CacheRetrieveMode.BYPASS, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) );
+ assertEquals( CacheStoreMode.BYPASS, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.IGNORE, hibQuery.getCacheMode() );
+
+ jpaQuery.setHint( AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.USE );
+ assertEquals( CacheRetrieveMode.BYPASS, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_RETRIEVE_MODE ) );
+ assertEquals( CacheStoreMode.USE, jpaQuery.getHints().get( AvailableSettings.SHARED_CACHE_STORE_MODE ) );
+ assertEquals( CacheMode.PUT, hibQuery.getCacheMode() );
+ }
+
+}
Added: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SimpleEntity.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SimpleEntity.java (rev 0)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cacheable/cachemodes/SimpleEntity.java 2010-01-22 01:55:20 UTC (rev 18603)
@@ -0,0 +1,56 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.ejb.test.cacheable.cachemodes;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+/**
+ * TODO : javadoc
+ *
+ * @author Steve Ebersole
+ */
+@Entity
+public class SimpleEntity {
+ private Long id;
+ private String name;
+
+ @Id
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
14 years, 3 months
Hibernate SVN: r18602 - in core/trunk: annotations/src/test/java/org/hibernate/test/annotations and 68 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-01-21 15:48:59 -0500 (Thu, 21 Jan 2010)
New Revision: 18602
Added:
core/trunk/testing/src/main/java/org/hibernate/test/annotations/
core/trunk/testing/src/main/java/org/hibernate/test/annotations/FailureExpected.java
core/trunk/testing/src/main/java/org/hibernate/test/annotations/HibernateTestCase.java
core/trunk/testing/src/main/java/org/hibernate/test/annotations/RequiresDialect.java
core/trunk/testing/src/main/java/org/hibernate/test/annotations/SkipForDialect.java
Removed:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/FailureExpected.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/RequiresDialect.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/SkipForDialect.java
Modified:
core/trunk/annotations/pom.xml
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/EntityTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/JoinedSubclassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/AccessTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/jpa/AccessTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/any/AnyTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/array/ArrayTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/bytecode/ProxyBreakingTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cascade/CascadeTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cid/CompositeIdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/deepcollectionelements/DeepCollectionElementTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/indexedCollection/IndexedCollectionOfElementsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/BasicHibernateAnnotationsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/Java5FeaturesTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/PropertyDefaultMappingsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entitynonentity/EntityNonEntityTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/fetch/FetchingTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/EmbeddedGenericsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/GenericsTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/UnresolvedTypeTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/genericsinheritance/GenericsInheritanceTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/EnumIdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdClassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/JoinColumnOverrideTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/JoinColumnOverrideTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/IdClassCompositePKTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/xml/IdClassXmlTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/identifiercollection/IdentifierCollectionTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/IdManyToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalIdManyToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalManyToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/immutable/ImmutableTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/IndexedCollectionTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/MapKeyTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/SubclassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/mixed/SubclassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/union/SubclassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/interfaces/InterfacesTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/loader/LoaderTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/ImageTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/LobTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/TextTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneJoinTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneOnNonPkTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/referencedcolumnname/ManyToOneReferencedColumnNameTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdOnSingleManyToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/notfound/NotFoundTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OneToManyTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OrderByTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetoone/OneToOneTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/persister/PersisterTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/query/QueryAndSQLTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/quote/QuoteTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/referencedcolumnname/ReferencedColumnNameTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/strategy/StrategyTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tableperclass/TablePerClassTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/target/TargetTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tuplizer/TuplizerTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/type/TypeTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/GeneratedTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/IndexTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/VersionTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/ejb3/Ejb3XmlTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmTest.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java
core/trunk/entitymanager/pom.xml
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/AggregationResultTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/PackagedEntityManagerTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/TestCase.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/callbacks/CallbacksTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cascade/CascadeTest.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/lob/BlobTest.java
core/trunk/testing/pom.xml
Log:
HHH-4822 - Moved the test annotations into the testing module in order to be able to reuse them in entitymanager module.
Also create a common base class for ann and em tests.
Modified: core/trunk/annotations/pom.xml
===================================================================
--- core/trunk/annotations/pom.xml 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/pom.xml 2010-01-21 20:48:59 UTC (rev 18602)
@@ -56,6 +56,12 @@
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-testing</artifactId>
+ <version>${version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/EntityTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/EntityTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/EntityTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -375,9 +375,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Flight.class,
Company.class,
Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/FailureExpected.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/FailureExpected.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/FailureExpected.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,42 +0,0 @@
-// $Id$
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors. All third-party contributions are
- * distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301 USA
- */
-package org.hibernate.test.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotations used to mark a expected test failure.
- *
- * @author Hardy Ferentschik
- */
-@Target({ ElementType.METHOD, ElementType.TYPE })
-(a)Retention(RetentionPolicy.RUNTIME)
-public @interface FailureExpected {
- String message() default "";
- String issueNumber() default "";
-}
\ No newline at end of file
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/JoinedSubclassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/JoinedSubclassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/JoinedSubclassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -92,10 +92,7 @@
s.close();
}
- /**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
- */
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Boat.class,
Ferry.class,
@@ -106,5 +103,4 @@
Tomato.class
};
}
-
}
Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/RequiresDialect.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/RequiresDialect.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/RequiresDialect.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,43 +0,0 @@
-// $Id$
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors. All third-party contributions are
- * distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301 USA
- */
-package org.hibernate.test.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.hibernate.dialect.Dialect;
-
-/**
- * Annotations used to mark a test to be specific to a given dialect.
- *
- * @author Hardy Ferentschik
- */
-(a)Target({ElementType.METHOD, ElementType.TYPE})
-(a)Retention(RetentionPolicy.RUNTIME)
-public @interface RequiresDialect {
- Class<? extends Dialect>[] value();
-}
Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/SkipForDialect.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/SkipForDialect.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/SkipForDialect.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,45 +0,0 @@
-// $Id$
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors. All third-party contributions are
- * distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301 USA
- */
-package org.hibernate.test.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.hibernate.dialect.Dialect;
-
-/**
- * Annotations used to mark a test to be specific to a given dialect.
- *
- * @author Hardy Ferentschik
- */
-@Target({ ElementType.METHOD, ElementType.TYPE })
-(a)Retention(RetentionPolicy.RUNTIME)
-public @interface SkipForDialect {
- Class<? extends Dialect>[] value();
-
- String comment();
-}
\ No newline at end of file
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -25,75 +25,53 @@
package org.hibernate.test.annotations;
import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.hibernate.HibernateException;
import org.hibernate.Interceptor;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
-import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.jdbc.Work;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
-import org.hibernate.util.StringHelper;
/**
- * A base class for all tests.
+ * A base class for all annotation tests.
*
* @author Emmnauel Bernand
* @author Hardy Ferentschik
*/
-public abstract class TestCase extends junit.framework.TestCase {
+public abstract class TestCase extends HibernateTestCase {
- public static final Logger log = LoggerFactory.getLogger( TestCase.class );
-
- private static SessionFactory sessions;
- private static AnnotationConfiguration cfg;
- private static Class<?> lastTestClass;
+ protected static SessionFactory sessions;
private Session session;
- /**
- * The test method.
- */
- private Method runMethod = null;
+ public TestCase() {
+ super();
+ }
- /**
- * Flag indicating whether the test should be run or skipped.
- */
- private boolean runTest = true;
+ public TestCase(String name) {
+ super( name );
+ }
- /**
- * List of required dialect for the current {@code runMethod}. If the list is empty any dialect is allowed.
- * Otherwise the current dialect or a superclass of the current dialect must be in the list.
- */
- private final Set<Class<? extends Dialect>> requiredDialectList = new HashSet<Class<? extends Dialect>>();
+ public Session openSession() throws HibernateException {
+ session = getSessions().openSession();
+ return session;
+ }
- /**
- * List of dialects for which the current {@code runMethod} should be skipped.
- */
- private final Set<Class<? extends Dialect>> skipForDialectList = new HashSet<Class<? extends Dialect>>();
+ public Session openSession(Interceptor interceptor) throws HibernateException {
+ session = getSessions().openSession( interceptor );
+ return session;
+ }
- public TestCase() {
- super();
+ protected void setSessions(SessionFactory sessions) {
+ TestCase.sessions = sessions;
}
- public TestCase(String x) {
- super( x );
+ protected SessionFactory getSessions() {
+ return sessions;
}
- protected void buildSessionFactory(Class<?>[] classes, String[] packages, String[] xmlFiles) throws Exception {
+ @Override
+ protected void buildConfiguration() throws Exception {
if ( getSessions() != null ) {
getSessions().close();
@@ -104,13 +82,13 @@
if ( recreateSchema() ) {
cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
}
- for ( String aPackage : packages ) {
- getCfg().addPackage( aPackage );
+ for ( String aPackage : getAnnotatedPackages() ) {
+ ( ( AnnotationConfiguration ) getCfg() ).addPackage( aPackage );
}
- for ( Class<?> aClass : classes ) {
- getCfg().addAnnotatedClass( aClass );
+ for ( Class<?> aClass : getAnnotatedClasses() ) {
+ ( ( AnnotationConfiguration ) getCfg() ).addAnnotatedClass( aClass );
}
- for ( String xmlFile : xmlFiles ) {
+ for ( String xmlFile : getXmlFiles() ) {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFile );
getCfg().addInputStream( is );
}
@@ -122,155 +100,8 @@
}
}
- protected void setUp() throws Exception {
- runMethod = findTestMethod();
- setRunTestFlag( runMethod );
- if ( runTest ) {
- if ( getSessions() == null || lastTestClass != getClass() ) {
- buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );
- lastTestClass = getClass();
- }
- else {
- runSchemaGeneration();
- }
- }
- }
-
- protected void runTest() throws Throwable {
- if ( runTest ) {
- runTestMethod( runMethod );
- handleUnclosedSession();
- }
- }
-
- private void setRunTestFlag(Method runMethod) {
- updateRequiredDialectList( runMethod );
- updateSkipForDialectList( runMethod );
-
- if ( runForCurrentDialect() ) {
- runTest = true;
- }
- else {
- log.warn(
- "Skipping test {}, because test does not apply for dialect {}", runMethod.getName(), Dialect
- .getDialect().getClass()
- );
- runTest = false;
- }
- }
-
- private void updateRequiredDialectList(Method runMethod) {
- requiredDialectList.clear();
-
- RequiresDialect requiresDialectMethodAnn = runMethod.getAnnotation( RequiresDialect.class );
- if ( requiresDialectMethodAnn != null ) {
- Class<? extends Dialect>[] requiredDialects = requiresDialectMethodAnn.value();
- requiredDialectList.addAll( Arrays.asList( requiredDialects ) );
- }
-
- RequiresDialect requiresDialectClassAnn = getClass().getAnnotation( RequiresDialect.class );
- if ( requiresDialectClassAnn != null ) {
- Class<? extends Dialect>[] requiredDialects = requiresDialectClassAnn.value();
- requiredDialectList.addAll( Arrays.asList( requiredDialects ) );
- }
- }
-
- private void updateSkipForDialectList(Method runMethod) {
- skipForDialectList.clear();
-
- SkipForDialect skipForDialectMethodAnn = runMethod.getAnnotation( SkipForDialect.class );
- if ( skipForDialectMethodAnn != null ) {
- Class<? extends Dialect>[] skipDialects = skipForDialectMethodAnn.value();
- skipForDialectList.addAll( Arrays.asList( skipDialects ) );
- }
-
- SkipForDialect skipForDialectClassAnn = getClass().getAnnotation( SkipForDialect.class );
- if ( skipForDialectClassAnn != null ) {
- Class<? extends Dialect>[] skipDialects = skipForDialectClassAnn.value();
- skipForDialectList.addAll( Arrays.asList( skipDialects ) );
- }
- }
-
- protected boolean runForCurrentDialect() {
- boolean runTestForCurrentDialect = true;
-
- // check whether the current dialect is assignableFrom from any of the specified required dialects.
- for ( Class<? extends Dialect> dialect : requiredDialectList ) {
- if ( dialect.isAssignableFrom( Dialect.getDialect().getClass() ) ) {
- runTestForCurrentDialect = true;
- break;
- }
- runTestForCurrentDialect = false;
- }
-
- // check whether the current dialect is assignableFrom from any of the specified skip for dialects.
- for ( Class<? extends Dialect> dialect : skipForDialectList ) {
- if ( dialect.isAssignableFrom( Dialect.getDialect().getClass() ) ) {
- runTestForCurrentDialect = false;
- break;
- }
- runTestForCurrentDialect = true;
- }
-
- return runTestForCurrentDialect;
- }
-
- private void runTestMethod(Method runMethod) throws Throwable {
- boolean failureExpected = runMethod.getAnnotation( FailureExpected.class ) != null;
- try {
- runMethod.invoke( this, new Class[0] );
- if ( failureExpected ) {
- throw new FailureExpectedTestPassedException();
- }
- }
- catch ( FailureExpectedTestPassedException t ) {
- closeSession();
- throw t;
- }
- catch ( Throwable t ) {
- if ( t instanceof InvocationTargetException || t instanceof IllegalAccessException ) {
- t.fillInStackTrace();
- }
- closeSession();
- if ( failureExpected ) {
- FailureExpected ann = runMethod.getAnnotation( FailureExpected.class );
- StringBuilder builder = new StringBuilder();
- if ( StringHelper.isNotEmpty( ann.message() ) ) {
- builder.append( ann.message() );
- }
- else {
- builder.append( "ignoring test methods annoated with @FailureExpected" );
- }
- if ( StringHelper.isNotEmpty( ann.issueNumber() ) ) {
- builder.append( " (" );
- builder.append( ann.issueNumber() );
- builder.append( ")" );
- }
- reportSkip( builder.toString(), "Failed with: " + t.toString() );
- }
- else {
- throw t;
- }
- }
- }
-
- private Method findTestMethod() {
- String fName = getName();
- assertNotNull( fName );
- Method runMethod = null;
- try {
- runMethod = getClass().getMethod( fName );
- }
- catch ( NoSuchMethodException e ) {
- fail( "Method \"" + fName + "\" not found" );
- }
- if ( !Modifier.isPublic( runMethod.getModifiers() ) ) {
- fail( "Method \"" + fName + "\" should be public" );
- }
- return runMethod;
- }
-
- private void handleUnclosedSession() {
+ @Override
+ protected void handleUnclosedResources() {
if ( session != null && session.isOpen() ) {
if ( session.isConnected() ) {
session.doWork( new RollbackWork() );
@@ -284,7 +115,8 @@
}
}
- private void closeSession() {
+ @Override
+ protected void closeResources() {
try {
if ( session != null && session.isOpen() ) {
if ( session.isConnected() ) {
@@ -304,83 +136,4 @@
catch ( Exception ignore ) {
}
}
-
- public Session openSession() throws HibernateException {
- session = getSessions().openSession();
- return session;
- }
-
- public Session openSession(Interceptor interceptor) throws HibernateException {
- session = getSessions().openSession( interceptor );
- return session;
- }
-
- protected abstract Class<?>[] getMappings();
-
- protected String[] getAnnotatedPackages() {
- return new String[] { };
- }
-
- protected String[] getXmlFiles() {
- return new String[] { };
- }
-
- private void setSessions(SessionFactory sessions) {
- TestCase.sessions = sessions;
- }
-
- protected SessionFactory getSessions() {
- return sessions;
- }
-
- protected Dialect getDialect() {
- return Dialect.getDialect();
- }
-
- protected static void setCfg(AnnotationConfiguration cfg) {
- TestCase.cfg = cfg;
- }
-
- protected static AnnotationConfiguration getCfg() {
- return cfg;
- }
-
- protected void configure(Configuration cfg) {
- }
-
- protected boolean recreateSchema() {
- return true;
- }
-
- protected void runSchemaGeneration() {
- SchemaExport export = new SchemaExport( cfg );
- export.create( true, true );
- }
-
- protected void reportSkip(String reason, String testDescription) {
- StringBuilder builder = new StringBuilder( );
- builder.append( "*** skipping test [" );
- builder.append( runMethod.getDeclaringClass().getName() );
- builder.append( "." );
- builder.append(runMethod.getName() );
- builder.append( "] - " );
- builder.append( testDescription );
- builder.append( " : " );
- builder.append( reason );
-
- log.warn( builder.toString() );
- }
-
- public class RollbackWork implements Work {
-
- public void execute(Connection connection) throws SQLException {
- connection.rollback();
- }
- }
-
- private static class FailureExpectedTestPassedException extends Exception {
- public FailureExpectedTestPassedException() {
- super( "Test marked as @FailureExpected, but did not fail!" );
- }
- }
}
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/AccessTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/AccessTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/AccessTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -112,7 +112,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Bed.class,
Chair.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/jpa/AccessTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/jpa/AccessTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/access/jpa/AccessTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -215,7 +215,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Bed.class,
Chair.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/any/AnyTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/any/AnyTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/any/AnyTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -138,7 +138,7 @@
}
@Override
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
StringProperty.class,
IntegerProperty.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/array/ArrayTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/array/ArrayTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/array/ArrayTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -45,7 +45,7 @@
}
@SuppressWarnings("unchecked")
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Competitor.class,
Contest.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -28,7 +28,7 @@
s.close();
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
CupHolder.class
};
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -34,7 +34,7 @@
cfg.setProperty( "javax.persistence.validation.mode", "none" );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
CupHolder.class
};
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -74,7 +74,7 @@
cfg.setProperty( "hibernate.validator.apply_to_ddl", "false" );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
CupHolder.class
};
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -34,7 +34,7 @@
s.close();
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
CupHolder.class
};
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -49,7 +49,7 @@
assertEquals( "Validator annotations are applied on tunner as it is @NotNull", true, serialColumn.isNullable() );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
Address.class,
Tv.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -179,7 +179,7 @@
cfg.setProperty( "hibernate.validator.autoregister_listeners", "false" );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
Button.class,
Color.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/bytecode/ProxyBreakingTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/bytecode/ProxyBreakingTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/bytecode/ProxyBreakingTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -35,7 +35,7 @@
super( name );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[0];
}
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cascade/CascadeTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cascade/CascadeTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cascade/CascadeTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -140,7 +140,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Mouth.class,
Tooth.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cid/CompositeIdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cid/CompositeIdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/cid/CompositeIdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -310,7 +310,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Parent.class,
Child.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -245,7 +245,7 @@
assertTrue( "Could not find " + columnName, hasDefault );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Boy.class,
Country.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -103,7 +103,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Products.class,
Widgets.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/deepcollectionelements/DeepCollectionElementTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/deepcollectionelements/DeepCollectionElementTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/deepcollectionelements/DeepCollectionElementTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -15,7 +15,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
//A.class,
//B.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/indexedCollection/IndexedCollectionOfElementsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/indexedCollection/IndexedCollectionOfElementsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/collectionelement/indexedCollection/IndexedCollectionOfElementsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -24,7 +24,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Sale.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -56,7 +56,7 @@
}
@Override
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
Dependent.class,
Employee.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -62,7 +62,7 @@
}
@Override
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
MedicalHistory.class,
Person.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -484,7 +484,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Person.class,
WealthyPerson.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/BasicHibernateAnnotationsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/BasicHibernateAnnotationsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/BasicHibernateAnnotationsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -686,7 +686,7 @@
super( x );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class[]{
Forest.class,
Tree.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/Java5FeaturesTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/Java5FeaturesTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/Java5FeaturesTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -115,7 +115,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Race.class,
Bid.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/PropertyDefaultMappingsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/PropertyDefaultMappingsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entity/PropertyDefaultMappingsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -53,7 +53,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Address.class,
WashingMachine.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entitynonentity/EntityNonEntityTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entitynonentity/EntityNonEntityTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/entitynonentity/EntityNonEntityTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -33,7 +33,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Phone.class,
Voice.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/fetch/FetchingTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/fetch/FetchingTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/fetch/FetchingTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -114,7 +114,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Person.class,
Stay.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/EmbeddedGenericsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/EmbeddedGenericsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/EmbeddedGenericsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -47,7 +47,7 @@
session.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Classes.Book.class,
Classes.PopularBook.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/GenericsTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/GenericsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/GenericsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -48,7 +48,7 @@
super.configure( cfg );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Paper.class,
PaperType.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/UnresolvedTypeTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/UnresolvedTypeTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/generics/UnresolvedTypeTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -34,7 +34,7 @@
}
@Override
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Gene.class,
DNA.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/genericsinheritance/GenericsInheritanceTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/genericsinheritance/GenericsInheritanceTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/genericsinheritance/GenericsInheritanceTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -13,7 +13,7 @@
s.close();
//mapping is tested
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
ChildHierarchy1.class,
ParentHierarchy1.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/EnumIdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/EnumIdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/EnumIdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -54,9 +54,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] { PlanetCheatSheet.class };
}
}
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdClassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdClassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdClassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -30,7 +30,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Tower.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/IdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -275,9 +275,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] { Ball.class, Shoe.class, Store.class,
Department.class, Dog.class, Computer.class, Home.class,
Phone.class, Tree.class, FirTree.class, Footballer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/JoinColumnOverrideTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/JoinColumnOverrideTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/JoinColumnOverrideTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -56,9 +56,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {};
}
}
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: EnumIdTest.java 14785 2008-06-19 10:44:33Z hardy.ferentschik $
+//$Id$
package org.hibernate.test.annotations.id.sequences;
import org.hibernate.Session;
@@ -54,9 +54,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] { PlanetCheatSheet.class };
}
}
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: IdClassTest.java 14784 2008-06-19 10:42:20Z hardy.ferentschik $
+//$Id$
package org.hibernate.test.annotations.id.sequences;
import org.hibernate.Session;
@@ -31,7 +31,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Tower.class
};
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: IdTest.java 15025 2008-08-11 09:14:39Z hardy.ferentschik $
+//$Id$
package org.hibernate.test.annotations.id.sequences;
import org.hibernate.Session;
@@ -282,9 +282,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] { Ball.class, Shoe.class, Store.class,
Department.class, Dog.class, Computer.class, Home.class,
Phone.class, Tree.class, FirTree.class, Footballer.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/JoinColumnOverrideTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/JoinColumnOverrideTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/JoinColumnOverrideTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: JoinColumnOverrideTest.java 14761 2008-06-11 13:51:06Z hardy.ferentschik $
+//$Id$
package org.hibernate.test.annotations.id.sequences;
import java.io.PrintWriter;
@@ -56,9 +56,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {};
}
}
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/id/sequences/JoinColumnOverrideTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/IdClassCompositePKTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/IdClassCompositePKTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/IdClassCompositePKTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -50,7 +50,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
DomainAdmin.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/xml/IdClassXmlTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/xml/IdClassXmlTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclass/xml/IdClassXmlTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -25,6 +25,7 @@
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
+import org.hibernate.test.annotations.FailureExpected;
import org.hibernate.test.annotations.TestCase;
/**
@@ -34,23 +35,25 @@
*/
public class IdClassXmlTest extends TestCase {
+ @FailureExpected
public void testEntityMappningPropertiesAreNotIgnored() {
- Session s = openSession();
- Transaction tx = s.beginTransaction();
-
- HabitatSpeciesLink link = new HabitatSpeciesLink();
- link.setHabitatId( 1l );
- link.setSpeciesId( 1l );
- s.persist( link );
-
- Query q = s.getNamedQuery( "testQuery" );
- assertEquals( 1, q.list().size() );
-
- tx.rollback();
- s.close();
+ throw new RuntimeException();
+// Session s = openSession();
+// Transaction tx = s.beginTransaction();
+//
+// HabitatSpeciesLink link = new HabitatSpeciesLink();
+// link.setHabitatId( 1l );
+// link.setSpeciesId( 1l );
+// s.persist( link );
+//
+// Query q = s.getNamedQuery( "testQuery" );
+// assertEquals( 1, q.list().size() );
+//
+// tx.rollback();
+// s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
HabitatSpeciesLink.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
@@ -149,7 +149,7 @@
// assertTrue( true );
// }
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
// Customer.class,
// CustomerInventory.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/identifiercollection/IdentifierCollectionTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/identifiercollection/IdentifierCollectionTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/identifiercollection/IdentifierCollectionTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -36,7 +36,7 @@
tx.rollback();
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Passport.class,
Stamp.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/IdManyToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/IdManyToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/IdManyToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -60,7 +60,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Store.class,
Customer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalIdManyToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalIdManyToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalIdManyToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -12,7 +12,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
B.class,
C.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalManyToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalManyToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalManyToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -11,7 +11,7 @@
//test through deployment
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Acces.class,
Droitacces.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/immutable/ImmutableTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/immutable/ImmutableTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/immutable/ImmutableTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -157,9 +157,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] { Country.class, State.class};
}
}
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/IndexedCollectionTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/IndexedCollectionTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/IndexedCollectionTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -595,7 +595,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Wardrobe.class,
Drawer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/MapKeyTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/MapKeyTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/indexcoll/MapKeyTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -31,7 +31,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
GenerationUser.class,
GenerationGroup.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/SubclassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/SubclassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/SubclassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -149,9 +149,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
A320b.class, //subclasses should be properly reordered
Plane.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -21,9 +21,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Pool.class,
SwimmingPool.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -155,9 +155,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
File.class,
Folder.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/mixed/SubclassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/mixed/SubclassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/mixed/SubclassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -62,9 +62,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
File.class,
Folder.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/union/SubclassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/union/SubclassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/inheritance/union/SubclassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -54,9 +54,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
File.class,
Folder.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/interfaces/InterfacesTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/interfaces/InterfacesTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/interfaces/InterfacesTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -11,7 +11,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
ContactImpl.class,
UserImpl.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -190,9 +190,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Life.class,
Death.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/loader/LoaderTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/loader/LoaderTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/loader/LoaderTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -56,9 +56,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Player.class,
Team.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/ImageTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/ImageTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/ImageTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: $
+//$Id$
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
@@ -161,7 +161,7 @@
return new String[] { "org.hibernate.test.annotations.lob" };
}
- public Class<?>[] getMappings() {
+ public Class<?>[] getAnnotatedClasses() {
return new Class[] { ImageHolder.class };
}
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/ImageTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/LobTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/LobTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/LobTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -123,7 +123,7 @@
return super.runForCurrentDialect() && getDialect().supportsExpectedLobUsagePattern();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Book.class,
CompiledCode.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/TextTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/TextTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/TextTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,4 @@
-//$Id: $
+//$Id$
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
@@ -45,7 +45,7 @@
public class TextTest extends TestCase {
@Override
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class[] { LongStringHolder.class };
}
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/lob/TextTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -719,9 +719,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Friend.class,
Employer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneJoinTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneJoinTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneJoinTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -52,7 +52,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
BiggestForest.class,
ForestType.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneOnNonPkTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneOnNonPkTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneOnNonPkTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -45,7 +45,7 @@
//
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
//Carz.class,
//Lotz.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -317,9 +317,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected java.lang.Class[] getMappings() {
+ protected java.lang.Class[] getAnnotatedClasses() {
return new java.lang.Class[]{
Deal.class,
org.hibernate.test.annotations.manytoone.Customer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/referencedcolumnname/ManyToOneReferencedColumnNameTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/referencedcolumnname/ManyToOneReferencedColumnNameTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoone/referencedcolumnname/ManyToOneReferencedColumnNameTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -42,7 +42,7 @@
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Item.class,
Vendor.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -150,9 +150,9 @@
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected java.lang.Class<?>[] getMappings() {
+ protected java.lang.Class<?>[] getAnnotatedClasses() {
return new java.lang.Class[] {
Menu.class,
FoodItem.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdOnSingleManyToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdOnSingleManyToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdOnSingleManyToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -103,7 +103,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Citizen.class, State.class,
NaturalIdOnManyToOne.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -132,7 +132,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Citizen.class, State.class,
NaturalIdOnManyToOne.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/notfound/NotFoundTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/notfound/NotFoundTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/notfound/NotFoundTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -36,7 +36,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Coin.class,
Currency.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OneToManyTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OneToManyTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OneToManyTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -404,9 +404,9 @@
// }
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Troop.class,
Soldier.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OrderByTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OrderByTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetomany/OrderByTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -43,7 +43,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Order.class,
OrderItem.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetoone/OneToOneTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetoone/OneToOneTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/onetoone/OneToOneTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -242,9 +242,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
PartyAffiliate.class,
Party.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -91,7 +91,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Employee.class,
Location.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -38,7 +38,7 @@
return SchemaUtil.isColumnPresent( tableName, columnName, getCfg() );
}
- protected Class<?>[] getMappings() {
+ protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
PropertyInfo.class,
PropertyRecord.class,
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/persister/PersisterTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/persister/PersisterTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/persister/PersisterTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -35,9 +35,9 @@
}
/**
- * @see org.hibernate.test.annotations.TestCase#getMappings()
+ * @see org.hibernate.test.annotations.TestCase#getAnnotatedClasses()
*/
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Card.class,
Deck.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -28,7 +28,7 @@
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Car.class,
SportCar.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/query/QueryAndSQLTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/query/QueryAndSQLTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/query/QueryAndSQLTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -395,7 +395,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Darkness.class,
Plane.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/quote/QuoteTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/quote/QuoteTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/quote/QuoteTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -26,7 +26,7 @@
assertEquals( "User_Role", getCfg().getCollectionMapping( role ).getCollectionTable().getName() );
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
User.class,
Role.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/referencedcolumnname/ReferencedColumnNameTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/referencedcolumnname/ReferencedColumnNameTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/referencedcolumnname/ReferencedColumnNameTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -178,7 +178,7 @@
super( x );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
House.class,
Postman.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/strategy/StrategyTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/strategy/StrategyTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/strategy/StrategyTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -36,7 +36,7 @@
//cfg.getSessionEventListenerConfig().setAutoFlushEventListener( new EJB3AutoFlushEventListener() );
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Storm.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tableperclass/TablePerClassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tableperclass/TablePerClassTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tableperclass/TablePerClassTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -78,7 +78,7 @@
super( x ); //To change body of overridden methods use File | Settings | File Templates.
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Robot.class,
T800.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/target/TargetTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/target/TargetTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/target/TargetTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -73,7 +73,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
LuggageImpl.class,
Brand.class
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tuplizer/TuplizerTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tuplizer/TuplizerTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/tuplizer/TuplizerTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -26,7 +26,7 @@
s.getTransaction().rollback();
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Cuisine.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/type/TypeTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/type/TypeTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/type/TypeTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -23,7 +23,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Dvd.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/GeneratedTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/GeneratedTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/GeneratedTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -22,7 +22,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Antenna.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/IndexTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/IndexTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/IndexTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -52,7 +52,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
Conductor.class,
Vehicule.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/VersionTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/VersionTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/various/VersionTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -33,7 +33,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Conductor.class
};
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/ejb3/Ejb3XmlTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/ejb3/Ejb3XmlTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/ejb3/Ejb3XmlTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -65,7 +65,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
CarModel.class,
Manufacturer.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -62,7 +62,7 @@
s.close();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[]{
PrimeMinister.class,
Sky.class,
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -28,7 +28,7 @@
return super.runForCurrentDialect() && getDialect().supportsIdentityColumns();
}
- protected Class[] getMappings() {
+ protected Class[] getAnnotatedClasses() {
return new Class[] {
Sky.class,
ZImpl.class
Property changes on: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/entitymanager/pom.xml
===================================================================
--- core/trunk/entitymanager/pom.xml 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/pom.xml 2010-01-21 20:48:59 UTC (rev 18602)
@@ -52,6 +52,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-testing</artifactId>
+ <version>${version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<!--
Only really needed for the antrun plugin defined below (which in turn is only really needed
to work around a missing feature on the compile plugin; lovely no?). However I have not
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/AggregationResultTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/AggregationResultTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/AggregationResultTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -45,7 +45,7 @@
private CriteriaBuilder builder;
@Override
- public void setUp() {
+ public void setUp() throws Exception {
super.setUp();
builder = factory.getCriteriaBuilder();
EntityManager em = getOrCreateEntityManager();
@@ -64,7 +64,7 @@
}
@Override
- public void tearDown() {
+ public void tearDown() throws Exception {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
em.createQuery( "delete Product" ).executeUpdate();
Property changes on: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/AggregationResultTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -41,7 +41,7 @@
private CriteriaBuilder builder;
@Override
- public void setUp() {
+ public void setUp() throws Exception {
super.setUp();
builder = factory.getCriteriaBuilder();
EntityManager em = getOrCreateEntityManager();
@@ -60,7 +60,7 @@
}
@Override
- public void tearDown() {
+ public void tearDown() throws Exception {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
em.createQuery( "delete Product" ).executeUpdate();
Property changes on: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/PackagedEntityManagerTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -26,7 +26,6 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Properties;
-
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@@ -42,6 +41,10 @@
import org.hibernate.ejb.test.pack.defaultpar.Mouse;
import org.hibernate.ejb.test.pack.defaultpar.OtherIncrementListener;
import org.hibernate.ejb.test.pack.defaultpar.Version;
+import org.hibernate.ejb.test.pack.defaultpar_1_0.ApplicationServer1;
+import org.hibernate.ejb.test.pack.defaultpar_1_0.Lighter1;
+import org.hibernate.ejb.test.pack.defaultpar_1_0.Mouse1;
+import org.hibernate.ejb.test.pack.defaultpar_1_0.Version1;
import org.hibernate.ejb.test.pack.excludehbmpar.Caipirinha;
import org.hibernate.ejb.test.pack.explodedpar.Carpet;
import org.hibernate.ejb.test.pack.explodedpar.Elephant;
@@ -49,10 +52,6 @@
import org.hibernate.ejb.test.pack.spacepar.Bug;
import org.hibernate.ejb.test.pack.various.Airplane;
import org.hibernate.ejb.test.pack.various.Seat;
-import org.hibernate.ejb.test.pack.defaultpar_1_0.ApplicationServer1;
-import org.hibernate.ejb.test.pack.defaultpar_1_0.Version1;
-import org.hibernate.ejb.test.pack.defaultpar_1_0.Mouse1;
-import org.hibernate.ejb.test.pack.defaultpar_1_0.Lighter1;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.event.EventListeners;
import org.hibernate.stat.Statistics;
@@ -65,11 +64,12 @@
public class PackagedEntityManagerTest extends TestCase {
public Class[] getAnnotatedClasses() {
- return new Class[] {
- };
+ return new Class[] { Item.class, Distributor.class };
}
- public void setUp() {
+ @Override
+ protected void buildConfiguration() throws Exception {
+ super.buildConfiguration();
factory = Persistence.createEntityManagerFactory( "manager1" );
}
@@ -193,12 +193,18 @@
try {
emf = Persistence.createEntityManagerFactory( "excludehbmpar", new HashMap() );
}
- catch (PersistenceException e) {
+ catch ( PersistenceException e ) {
Throwable nested = e.getCause();
- if ( nested == null ) throw e;
+ if ( nested == null ) {
+ throw e;
+ }
nested = nested.getCause();
- if ( nested == null ) throw e;
- if ( !( nested instanceof ClassNotFoundException ) ) throw e;
+ if ( nested == null ) {
+ throw e;
+ }
+ if ( !( nested instanceof ClassNotFoundException ) ) {
+ throw e;
+ }
fail( "Try to process hbm file: " + e.getMessage() );
}
EntityManager em = emf.createEntityManager();
@@ -255,7 +261,7 @@
public void testOverridenPar() throws Exception {
HashMap properties = new HashMap();
properties.put( AvailableSettings.JTA_DATASOURCE, null );
- Properties p=new Properties();
+ Properties p = new Properties();
p.load( ConfigHelper.getResourceAsStream( "/overridenpar.properties" ) );
properties.putAll( p );
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "overridenpar", properties );
@@ -276,11 +282,12 @@
public void testListeners() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "manager1", new HashMap() );
EntityManager em = emf.createEntityManager();
- EventListeners eventListeners = em.unwrap(SessionImplementor.class).getListeners();
+ EventListeners eventListeners = em.unwrap( SessionImplementor.class ).getListeners();
assertEquals(
"Explicit pre-insert event through hibernate.ejb.event.pre-insert does not work",
eventListeners.getPreInsertEventListeners().length,
- eventListeners.getPreUpdateEventListeners().length + 1 );
+ eventListeners.getPreUpdateEventListeners().length + 1
+ );
em.close();
emf.close();
@@ -299,7 +306,7 @@
assertTrue( em.contains( item ) );
em.getTransaction().begin();
- Item item1 = (Item) em.createQuery( "select i from Item i where descr like 'M%'" ).getSingleResult();
+ Item item1 = ( Item ) em.createQuery( "select i from Item i where descr like 'M%'" ).getSingleResult();
assertNotNull( item1 );
assertSame( item, item1 );
item.setDescr( "Micro$oft wireless mouse" );
@@ -318,7 +325,7 @@
assertSame( item, item1 );
assertTrue( em.contains( item ) );
- item1 = (Item) em.createQuery( "select i from Item i where descr like 'M%'" ).getSingleResult();
+ item1 = ( Item ) em.createQuery( "select i from Item i where descr like 'M%'" ).getSingleResult();
assertNotNull( item1 );
assertSame( item, item1 );
assertTrue( em.contains( item ) );
@@ -339,7 +346,7 @@
res.setName( "Bruce" );
item.setDistributors( new HashSet<Distributor>() );
item.getDistributors().add( res );
- Statistics stats = ( (HibernateEntityManagerFactory) factory ).getSessionFactory().getStatistics();
+ Statistics stats = ( ( HibernateEntityManagerFactory ) factory ).getSessionFactory().getStatistics();
stats.clear();
stats.setStatisticsEnabled( true );
@@ -369,7 +376,7 @@
second = em.find( Item.class, item.getName() );
assertEquals( 1, second.getDistributors().size() );
assertEquals( 3, stats.getSecondLevelCacheHitCount() );
- for (Distributor distro : second.getDistributors()) {
+ for ( Distributor distro : second.getDistributors() ) {
em.remove( distro );
}
em.remove( second );
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/TestCase.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/TestCase.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/TestCase.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -26,30 +26,37 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
-
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.hibernate.cfg.Environment;
import org.hibernate.dialect.Dialect;
import org.hibernate.ejb.AvailableSettings;
-import org.hibernate.ejb.HibernatePersistence;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.test.annotations.HibernateTestCase;
-
/**
+ * A base class for all ejb tests.
+ *
* @author Emmanuel Bernard
+ * @author Hardy Ferentschik
*/
-public abstract class TestCase extends junit.framework.TestCase {
- protected EntityManagerFactory factory;
- protected EntityManager em;
- private static Log log = LogFactory.getLog( TestCase.class );
+public abstract class TestCase extends HibernateTestCase {
+ private static final Log log = LogFactory.getLog( TestCase.class );
+
+ protected static EntityManagerFactory factory;
+ private EntityManager em;
+
+
public TestCase() {
super();
}
@@ -58,57 +65,64 @@
super( name );
}
- public void setUp() {
- factory = new HibernatePersistence().createEntityManagerFactory( getConfig() );
- }
- public void tearDown() {
- factory.close();
+ public void tearDown() throws Exception {
+ super.tearDown();
}
-
+
@Override
- public void runTest() throws Throwable {
- try {
- em = getOrCreateEntityManager();
- super.runTest();
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- fail("You left an open transaction! Fix your test case. For now, we are closing it for you.");
- }
+ protected void buildConfiguration() throws Exception {
+ Ejb3Configuration ejbconfig = new Ejb3Configuration();
+ TestCase.cfg = ejbconfig.getHibernateConfiguration();
+ if ( recreateSchema() ) {
+ cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );
+ }
+ factory = ejbconfig.createEntityManagerFactory( getConfig() );
+ }
- } catch (Throwable t) {
- if (em.getTransaction().isActive())
- em.getTransaction().rollback();
- throw t;
- } finally {
- if (em.isOpen()) {
- // as we open an EM before the test runs, it will still be open if the test uses a custom EM.
- // or, the person may have forgotten to close. So, do not raise a "fail", but log the fact.
- em.close();
- log.warn("The EntityManager is not closed. Closing it.");
- }
+ protected void handleUnclosedResources(){
+ if(em == null) {
+ return;
}
+ if ( em.getTransaction().isActive() ) {
+ em.getTransaction().rollback();
+ log.warn( "You left an open transaction! Fix your test case. For now, we are closing it for you." );
+ }
+ if ( em.isOpen() ) {
+ // as we open an EM before the test runs, it will still be open if the test uses a custom EM.
+ // or, the person may have forgotten to close. So, do not raise a "fail", but log the fact.
+ em.close();
+ log.warn( "The EntityManager is not closed. Closing it." );
+ }
+ cfg = null;
}
-
+
+ protected void closeResources() {
+ if ( factory != null ) {
+ factory.close();
+ }
+ }
+
protected EntityManager getOrCreateEntityManager() {
- if (em == null || !em.isOpen())
+ if ( em == null || !em.isOpen() ) {
em = factory.createEntityManager();
+ }
return em;
}
- /** always reopen a new EM and clse the existing one */
+ /**
+ * always reopen a new EM and clse the existing one
+ */
protected EntityManager createEntityManager(Map properties) {
- if (em != null && em.isOpen() ) {
+ if ( em != null && em.isOpen() ) {
em.close();
}
- em = factory.createEntityManager(properties);
+ em = factory.createEntityManager( properties );
return em;
}
- public abstract Class[] getAnnotatedClasses();
-
public String[] getEjb3DD() {
- return new String[] {};
+ return new String[] { };
}
public Map<Class, String> getCachedClasses() {
@@ -126,14 +140,14 @@
try {
props.load( stream );
}
- catch (Exception e) {
+ catch ( Exception e ) {
throw new RuntimeException( "could not load hibernate.properties" );
}
finally {
try {
stream.close();
}
- catch (IOException ioe) {
+ catch ( IOException ioe ) {
}
}
}
@@ -142,12 +156,10 @@
}
public Map getConfig() {
- Map config = loadProperties();
+ Map<Object, Object> config = loadProperties();
ArrayList<Class> classes = new ArrayList<Class>();
- for ( Class clazz : getAnnotatedClasses() ) {
- classes.add( clazz );
- }
+ classes.addAll( Arrays.asList( getAnnotatedClasses() ) );
config.put( AvailableSettings.LOADED_CLASSES, classes );
for ( Map.Entry<Class, String> entry : getCachedClasses().entrySet() ) {
config.put(
@@ -163,9 +175,7 @@
}
if ( getEjb3DD().length > 0 ) {
ArrayList<String> dds = new ArrayList<String>();
- for ( String dd : getEjb3DD() ) {
- dds.add( dd );
- }
+ dds.addAll( Arrays.asList( getEjb3DD() ) );
config.put( AvailableSettings.XML_FILE_NAMES, dds );
}
return config;
@@ -173,30 +183,13 @@
@Override
public void runBare() throws Throwable {
-
- if (!appliesTo(Dialect.getDialect()))
+ if ( !appliesTo( Dialect.getDialect() ) ) {
return;
-
- Throwable exception = null;
- setUp();
- try {
- runTest();
- } catch (Throwable running) {
- exception = running;
- } finally {
- try {
- tearDown();
- } catch (Throwable tearingDown) {
- if (exception == null)
- exception = tearingDown;
- }
}
- if (exception != null)
- throw exception;
+ super.runBare();
}
public boolean appliesTo(Dialect dialect) {
return true;
}
-
}
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/callbacks/CallbacksTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,6 +1,7 @@
//$Id$
package org.hibernate.ejb.test.callbacks;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -9,6 +10,7 @@
import org.hibernate.ejb.test.Cat;
import org.hibernate.ejb.test.Kitten;
import org.hibernate.ejb.test.TestCase;
+import org.hibernate.test.annotations.FailureExpected;
/**
* @author Emmanuel Bernard
@@ -166,67 +168,61 @@
em.close();
}
-// /**
-// * Tests callbacks for collection changes.
-// *
-// * @throws Exception in case the test fails.
-// * @see EJB-288
-// */
-// public void testPostUpdateCollection() throws Exception {
-//
-// // create a cat
-// EntityManager em = getEntityManager();
-// Cat cat = new Cat();
-// em.getTransaction().begin();
-// cat.setLength( 23 );
-// cat.setAge( 2 );
-// cat.setName( "Beetle" );
-// cat.setDateOfBirth( new Date() );
-// em.persist( cat );
-// em.getTransaction().commit();
-//
-// // assert it is persisted
-// List ids = Cat.getIdList();
-// Object id = Cat.getIdList().get( ids.size() - 1 );
-// assertNotNull( id );
-//
-// // add a kitten to the cat - triggers PostCollectionRecreateEvent
-// int postVersion = Cat.postVersion;
-// em.getTransaction().begin();
-// Kitten kitty = new Kitten();
-// kitty.setName("kitty");
-// List kittens = new ArrayList<Kitten>();
-// kittens.add(kitty);
-// cat.setKittens(kittens);
-// em.getTransaction().commit();
-// assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
-//
-// // add another kitten - triggers PostCollectionUpdateEvent.
-// postVersion = Cat.postVersion;
-// em.getTransaction().begin();
-// Kitten tom = new Kitten();
-// tom.setName("Tom");
-// cat.getKittens().add(tom);
-// em.getTransaction().commit();
-// assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
-//
-// // delete a kitty - triggers PostCollectionUpdateEvent
-// postVersion = Cat.postVersion;
-// em.getTransaction().begin();
-// cat.getKittens().remove(tom);
-// em.getTransaction().commit();
-// assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
-//
-// // delete and recreate kittens - triggers PostCollectionRemoveEvent and PostCollectionRecreateEvent)
-// postVersion = Cat.postVersion;
-// em.getTransaction().begin();
-// cat.setKittens(new ArrayList<Kitten>());
-// em.getTransaction().commit();
-// assertEquals("Post version should have been incremented.", postVersion + 2, Cat.postVersion);
-//
-// em.close();
-// }
+ @FailureExpected(message = "collection change does not trigger an event", issueNumber = "EJB-288")
+ public void testPostUpdateCollection() throws Exception {
+ // create a cat
+ EntityManager em = getOrCreateEntityManager();
+ Cat cat = new Cat();
+ em.getTransaction().begin();
+ cat.setLength( 23 );
+ cat.setAge( 2 );
+ cat.setName( "Beetle" );
+ cat.setDateOfBirth( new Date() );
+ em.persist( cat );
+ em.getTransaction().commit();
+ // assert it is persisted
+ List ids = Cat.getIdList();
+ Object id = Cat.getIdList().get( ids.size() - 1 );
+ assertNotNull( id );
+
+ // add a kitten to the cat - triggers PostCollectionRecreateEvent
+ int postVersion = Cat.postVersion;
+ em.getTransaction().begin();
+ Kitten kitty = new Kitten();
+ kitty.setName("kitty");
+ List kittens = new ArrayList<Kitten>();
+ kittens.add(kitty);
+ cat.setKittens(kittens);
+ em.getTransaction().commit();
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
+
+ // add another kitten - triggers PostCollectionUpdateEvent.
+ postVersion = Cat.postVersion;
+ em.getTransaction().begin();
+ Kitten tom = new Kitten();
+ tom.setName("Tom");
+ cat.getKittens().add(tom);
+ em.getTransaction().commit();
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
+
+ // delete a kitty - triggers PostCollectionUpdateEvent
+ postVersion = Cat.postVersion;
+ em.getTransaction().begin();
+ cat.getKittens().remove(tom);
+ em.getTransaction().commit();
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
+
+ // delete and recreate kittens - triggers PostCollectionRemoveEvent and PostCollectionRecreateEvent)
+ postVersion = Cat.postVersion;
+ em.getTransaction().begin();
+ cat.setKittens(new ArrayList<Kitten>());
+ em.getTransaction().commit();
+ assertEquals("Post version should have been incremented.", postVersion + 2, Cat.postVersion);
+
+ em.close();
+ }
+
public Class[] getAnnotatedClasses() {
return new Class[]{
Cat.class,
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cascade/CascadeTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cascade/CascadeTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/cascade/CascadeTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -90,6 +90,6 @@
Author.class
};
}
-
-
+
+
}
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/lob/BlobTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/lob/BlobTest.java 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/test/lob/BlobTest.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -12,34 +12,37 @@
import org.hibernate.Hibernate;
import org.hibernate.dialect.Dialect;
import org.hibernate.ejb.test.TestCase;
+import org.hibernate.test.annotations.FailureExpected;
/**
* @author Emmanuel Bernard
*/
public class BlobTest extends TestCase {
+ @FailureExpected
public void testBlobSerialization() throws Exception {
- EntityManager em = getOrCreateEntityManager();
- em.getTransaction().begin();
- Map image = new HashMap();
- image.put( "meta", "metadata" );
- image.put( "data", "imagedata" );
- ImageReader reader = new ImageReader();
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream( baos );
- oos.writeObject( image );
- reader.setImage( (Blob) Hibernate.createBlob( baos.toByteArray() ) );
- em.persist( reader );
- em.getTransaction().commit();
- em.close(); //useless but y'a know
- em = getOrCreateEntityManager();
- em.getTransaction().begin();
- reader = em.find( ImageReader.class, reader.getId() );
- ObjectInputStream ois = new ObjectInputStream( reader.getImage().getBinaryStream() );
- image = (HashMap) ois.readObject();
- assertTrue( image.containsKey( "meta" ) );
- em.getTransaction().commit();
- em.close();
+ throw new RuntimeException( );
+// EntityManager em = getOrCreateEntityManager();
+// em.getTransaction().begin();
+// Map<String,String> image = new HashMap<String, String>();
+// image.put( "meta", "metadata" );
+// image.put( "data", "imagedata" );
+// ImageReader reader = new ImageReader();
+// ByteArrayOutputStream baos = new ByteArrayOutputStream();
+// ObjectOutputStream oos = new ObjectOutputStream( baos );
+// oos.writeObject( image );
+// reader.setImage( (Blob) Hibernate.createBlob( baos.toByteArray() ) );
+// em.persist( reader );
+// em.getTransaction().commit();
+// em.close(); //useless but y'a know
+// em = getOrCreateEntityManager();
+// em.getTransaction().begin();
+// reader = em.find( ImageReader.class, reader.getId() );
+// ObjectInputStream ois = new ObjectInputStream( reader.getImage().getBinaryStream() );
+// image = (HashMap<String, String>) ois.readObject();
+// assertTrue( image.containsKey( "meta" ) );
+// em.getTransaction().commit();
+// em.close();
}
@Override
Modified: core/trunk/testing/pom.xml
===================================================================
--- core/trunk/testing/pom.xml 2010-01-21 19:37:01 UTC (rev 18601)
+++ core/trunk/testing/pom.xml 2010-01-21 20:48:59 UTC (rev 18602)
@@ -1,4 +1,6 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -21,7 +23,7 @@
<groupId>${groupId}</groupId>
<artifactId>hibernate-core</artifactId>
<version>${version}</version>
- </dependency>
+ </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -41,5 +43,15 @@
</includes>
</resource>
</resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
</project>
Copied: core/trunk/testing/src/main/java/org/hibernate/test/annotations/FailureExpected.java (from rev 18594, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/FailureExpected.java)
===================================================================
--- core/trunk/testing/src/main/java/org/hibernate/test/annotations/FailureExpected.java (rev 0)
+++ core/trunk/testing/src/main/java/org/hibernate/test/annotations/FailureExpected.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -0,0 +1,42 @@
+// $Id$
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotations used to mark a expected test failure.
+ *
+ * @author Hardy Ferentschik
+ */
+@Target({ ElementType.METHOD, ElementType.TYPE })
+(a)Retention(RetentionPolicy.RUNTIME)
+public @interface FailureExpected {
+ String message() default "";
+ String issueNumber() default "";
+}
\ No newline at end of file
Copied: core/trunk/testing/src/main/java/org/hibernate/test/annotations/HibernateTestCase.java (from rev 18596, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java)
===================================================================
--- core/trunk/testing/src/main/java/org/hibernate/test/annotations/HibernateTestCase.java (rev 0)
+++ core/trunk/testing/src/main/java/org/hibernate/test/annotations/HibernateTestCase.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -0,0 +1,317 @@
+// $Id:$
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.annotations;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.TestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.hibernate.cfg.Configuration;
+import org.hibernate.dialect.Dialect;
+import org.hibernate.jdbc.Work;
+import org.hibernate.tool.hbm2ddl.SchemaExport;
+import org.hibernate.util.StringHelper;
+
+/**
+ * A base class for all tests.
+ *
+ * @author Emmnauel Bernand
+ * @author Hardy Ferentschik
+ */
+public abstract class HibernateTestCase extends TestCase {
+
+ public static final Logger log = LoggerFactory.getLogger( HibernateTestCase.class );
+
+ protected static Configuration cfg;
+ private static Class<?> lastTestClass;
+
+
+ /**
+ * The test method.
+ */
+ private Method runMethod = null;
+
+ /**
+ * Flag indicating whether the test should be run or skipped.
+ */
+ private boolean runTest = true;
+
+ /**
+ * List of required dialect for the current {@code runMethod}. If the list is empty any dialect is allowed.
+ * Otherwise the current dialect or a superclass of the current dialect must be in the list.
+ */
+ private final Set<Class<? extends Dialect>> requiredDialectList = new HashSet<Class<? extends Dialect>>();
+
+ /**
+ * List of dialects for which the current {@code runMethod} should be skipped.
+ */
+ private final Set<Class<? extends Dialect>> skipForDialectList = new HashSet<Class<? extends Dialect>>();
+
+ public HibernateTestCase() {
+ super();
+ }
+
+ public HibernateTestCase(String x) {
+ super( x );
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ runMethod = findTestMethod();
+ setRunTestFlag( runMethod );
+ if ( runTest ) {
+ if ( cfg == null || lastTestClass != getClass() ) {
+ buildConfiguration();
+ lastTestClass = getClass();
+ }
+ else {
+ runSchemaGeneration();
+ }
+ }
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ runSchemaDrop();
+ handleUnclosedResources();
+ }
+
+ protected void runTest() throws Throwable {
+ if ( runTest ) {
+ runTestMethod( runMethod );
+ }
+ }
+
+ private void setRunTestFlag(Method runMethod) {
+ updateRequiredDialectList( runMethod );
+ updateSkipForDialectList( runMethod );
+
+ if ( runForCurrentDialect() ) {
+ runTest = true;
+ }
+ else {
+ log.warn(
+ "Skipping test {}, because test does not apply for dialect {}", runMethod.getName(), Dialect
+ .getDialect().getClass()
+ );
+ runTest = false;
+ }
+ }
+
+ private void updateRequiredDialectList(Method runMethod) {
+ requiredDialectList.clear();
+
+ RequiresDialect requiresDialectMethodAnn = runMethod.getAnnotation( RequiresDialect.class );
+ if ( requiresDialectMethodAnn != null ) {
+ Class<? extends Dialect>[] requiredDialects = requiresDialectMethodAnn.value();
+ requiredDialectList.addAll( Arrays.asList( requiredDialects ) );
+ }
+
+ RequiresDialect requiresDialectClassAnn = getClass().getAnnotation( RequiresDialect.class );
+ if ( requiresDialectClassAnn != null ) {
+ Class<? extends Dialect>[] requiredDialects = requiresDialectClassAnn.value();
+ requiredDialectList.addAll( Arrays.asList( requiredDialects ) );
+ }
+ }
+
+ private void updateSkipForDialectList(Method runMethod) {
+ skipForDialectList.clear();
+
+ SkipForDialect skipForDialectMethodAnn = runMethod.getAnnotation( SkipForDialect.class );
+ if ( skipForDialectMethodAnn != null ) {
+ Class<? extends Dialect>[] skipDialects = skipForDialectMethodAnn.value();
+ skipForDialectList.addAll( Arrays.asList( skipDialects ) );
+ }
+
+ SkipForDialect skipForDialectClassAnn = getClass().getAnnotation( SkipForDialect.class );
+ if ( skipForDialectClassAnn != null ) {
+ Class<? extends Dialect>[] skipDialects = skipForDialectClassAnn.value();
+ skipForDialectList.addAll( Arrays.asList( skipDialects ) );
+ }
+ }
+
+ protected boolean runForCurrentDialect() {
+ boolean runTestForCurrentDialect = true;
+
+ // check whether the current dialect is assignableFrom from any of the specified required dialects.
+ for ( Class<? extends Dialect> dialect : requiredDialectList ) {
+ if ( dialect.isAssignableFrom( Dialect.getDialect().getClass() ) ) {
+ runTestForCurrentDialect = true;
+ break;
+ }
+ runTestForCurrentDialect = false;
+ }
+
+ // check whether the current dialect is assignableFrom from any of the specified skip for dialects.
+ for ( Class<? extends Dialect> dialect : skipForDialectList ) {
+ if ( dialect.isAssignableFrom( Dialect.getDialect().getClass() ) ) {
+ runTestForCurrentDialect = false;
+ break;
+ }
+ runTestForCurrentDialect = true;
+ }
+
+ return runTestForCurrentDialect;
+ }
+
+ private void runTestMethod(Method runMethod) throws Throwable {
+ boolean failureExpected = runMethod.getAnnotation( FailureExpected.class ) != null;
+ try {
+ runMethod.invoke( this, new Class[0] );
+ if ( failureExpected ) {
+ throw new FailureExpectedTestPassedException();
+ }
+ }
+ catch ( FailureExpectedTestPassedException t ) {
+ closeResources();
+ throw t;
+ }
+ catch ( Throwable t ) {
+ if ( t instanceof InvocationTargetException ) {
+ t = ( ( InvocationTargetException ) t ).getTargetException();
+ }
+ if ( t instanceof IllegalAccessException ) {
+ t.fillInStackTrace();
+ }
+ closeResources();
+ if ( failureExpected ) {
+ FailureExpected ann = runMethod.getAnnotation( FailureExpected.class );
+ StringBuilder builder = new StringBuilder();
+ if ( StringHelper.isNotEmpty( ann.message() ) ) {
+ builder.append( ann.message() );
+ }
+ else {
+ builder.append( "ignoring test methods annoated with @FailureExpected" );
+ }
+ if ( StringHelper.isNotEmpty( ann.issueNumber() ) ) {
+ builder.append( " (" );
+ builder.append( ann.issueNumber() );
+ builder.append( ")" );
+ }
+ reportSkip( builder.toString(), "Failed with: " + t.toString() );
+ }
+ else {
+ throw t;
+ }
+ }
+ }
+
+ private Method findTestMethod() {
+ String fName = getName();
+ assertNotNull( fName );
+ Method runMethod = null;
+ try {
+ runMethod = getClass().getMethod( fName );
+ }
+ catch ( NoSuchMethodException e ) {
+ fail( "Method \"" + fName + "\" not found" );
+ }
+ if ( !Modifier.isPublic( runMethod.getModifiers() ) ) {
+ fail( "Method \"" + fName + "\" should be public" );
+ }
+ return runMethod;
+ }
+
+ protected abstract void buildConfiguration() throws Exception;
+
+ protected abstract Class<?>[] getAnnotatedClasses();
+
+ protected abstract void handleUnclosedResources();
+
+ protected abstract void closeResources();
+
+ protected String[] getAnnotatedPackages() {
+ return new String[] { };
+ }
+
+ protected String[] getXmlFiles() {
+ return new String[] { };
+ }
+
+ protected Dialect getDialect() {
+ return Dialect.getDialect();
+ }
+
+ protected static void setCfg(Configuration cfg) {
+ HibernateTestCase.cfg = cfg;
+ }
+
+ protected static Configuration getCfg() {
+ return cfg;
+ }
+
+ protected void configure(Configuration cfg) {
+ }
+
+ protected boolean recreateSchema() {
+ return true;
+ }
+
+ protected void runSchemaGeneration() {
+ SchemaExport export = new SchemaExport( cfg );
+ export.create( true, true );
+ }
+
+ protected void runSchemaDrop() {
+ SchemaExport export = new SchemaExport( cfg );
+ export.drop( true, true );
+ }
+
+ protected void reportSkip(String reason, String testDescription) {
+ StringBuilder builder = new StringBuilder();
+ builder.append( "*** skipping test [" );
+ builder.append( runMethod.getDeclaringClass().getName() );
+ builder.append( "." );
+ builder.append( runMethod.getName() );
+ builder.append( "] - " );
+ builder.append( testDescription );
+ builder.append( " : " );
+ builder.append( reason );
+
+ log.warn( builder.toString() );
+ }
+
+ public class RollbackWork implements Work {
+
+ public void execute(Connection connection) throws SQLException {
+ connection.rollback();
+ }
+ }
+
+ private static class FailureExpectedTestPassedException extends Exception {
+ public FailureExpectedTestPassedException() {
+ super( "Test marked as @FailureExpected, but did not fail!" );
+ }
+ }
+}
Property changes on: core/trunk/testing/src/main/java/org/hibernate/test/annotations/HibernateTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Copied: core/trunk/testing/src/main/java/org/hibernate/test/annotations/RequiresDialect.java (from rev 18594, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/RequiresDialect.java)
===================================================================
--- core/trunk/testing/src/main/java/org/hibernate/test/annotations/RequiresDialect.java (rev 0)
+++ core/trunk/testing/src/main/java/org/hibernate/test/annotations/RequiresDialect.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -0,0 +1,43 @@
+// $Id$
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.hibernate.dialect.Dialect;
+
+/**
+ * Annotations used to mark a test to be specific to a given dialect.
+ *
+ * @author Hardy Ferentschik
+ */
+(a)Target({ElementType.METHOD, ElementType.TYPE})
+(a)Retention(RetentionPolicy.RUNTIME)
+public @interface RequiresDialect {
+ Class<? extends Dialect>[] value();
+}
Copied: core/trunk/testing/src/main/java/org/hibernate/test/annotations/SkipForDialect.java (from rev 18594, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/SkipForDialect.java)
===================================================================
--- core/trunk/testing/src/main/java/org/hibernate/test/annotations/SkipForDialect.java (rev 0)
+++ core/trunk/testing/src/main/java/org/hibernate/test/annotations/SkipForDialect.java 2010-01-21 20:48:59 UTC (rev 18602)
@@ -0,0 +1,45 @@
+// $Id$
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.hibernate.dialect.Dialect;
+
+/**
+ * Annotations used to mark a test to be specific to a given dialect.
+ *
+ * @author Hardy Ferentschik
+ */
+@Target({ ElementType.METHOD, ElementType.TYPE })
+(a)Retention(RetentionPolicy.RUNTIME)
+public @interface SkipForDialect {
+ Class<? extends Dialect>[] value();
+
+ String comment();
+}
\ No newline at end of file
14 years, 3 months
Hibernate SVN: r18601 - in core/trunk/core/src/main/java/org/hibernate: id and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2010-01-21 14:37:01 -0500 (Thu, 21 Jan 2010)
New Revision: 18601
Added:
core/trunk/core/src/main/java/org/hibernate/id/CompositeNestedGeneratedValueGenerator.java
Modified:
core/trunk/core/src/main/java/org/hibernate/event/def/DefaultFlushEntityEventListener.java
core/trunk/core/src/main/java/org/hibernate/mapping/Component.java
core/trunk/core/src/main/java/org/hibernate/mapping/SimpleValue.java
Log:
HHH-4552 - Support generated value within composite keys
Modified: core/trunk/core/src/main/java/org/hibernate/event/def/DefaultFlushEntityEventListener.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/event/def/DefaultFlushEntityEventListener.java 2010-01-21 17:51:09 UTC (rev 18600)
+++ core/trunk/core/src/main/java/org/hibernate/event/def/DefaultFlushEntityEventListener.java 2010-01-21 19:37:01 UTC (rev 18601)
@@ -38,6 +38,7 @@
import org.hibernate.engine.EntityEntry;
import org.hibernate.engine.EntityKey;
import org.hibernate.engine.Nullability;
+import org.hibernate.engine.SessionFactoryImplementor;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.engine.Status;
import org.hibernate.engine.Versioning;
@@ -62,8 +63,12 @@
/**
* make sure user didn't mangle the id
*/
- public void checkId(Object object, EntityPersister persister, Serializable id, EntityMode entityMode)
- throws HibernateException {
+ public void checkId(
+ Object object,
+ EntityPersister persister,
+ Serializable id,
+ EntityMode entityMode,
+ SessionFactoryImplementor factory) throws HibernateException {
if ( id != null && id instanceof DelayedPostInsertIdentifier ) {
// this is a situation where the entity id is assigned by a post-insert generator
@@ -77,7 +82,7 @@
if (id==null) {
throw new AssertionFailure("null id in " + persister.getEntityName() + " entry (don't flush the Session after an exception occurs)");
}
- if ( !persister.getIdentifierType().isEqual(id, oid, entityMode) ) {
+ if ( !persister.getIdentifierType().isEqual( id, oid, entityMode, factory ) ) {
throw new HibernateException(
"identifier of an instance of " +
persister.getEntityName() +
@@ -184,7 +189,7 @@
values = loadedState;
}
else {
- checkId( entity, persister, entry.getId(), entityMode );
+ checkId( entity, persister, entry.getId(), entityMode, session.getFactory() );
// grab its current state
values = persister.getPropertyValues( entity, entityMode );
Added: core/trunk/core/src/main/java/org/hibernate/id/CompositeNestedGeneratedValueGenerator.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/id/CompositeNestedGeneratedValueGenerator.java (rev 0)
+++ core/trunk/core/src/main/java/org/hibernate/id/CompositeNestedGeneratedValueGenerator.java 2010-01-21 19:37:01 UTC (rev 18601)
@@ -0,0 +1,96 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.id;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.hibernate.HibernateException;
+import org.hibernate.engine.SessionImplementor;
+
+/**
+ * For composite identifiers, defines a number of "nested" generations that
+ * need to happen to "fill" the identifier property(s).
+ * <p/>
+ * This generator is used implicitly for all composite identifier scenarios if an
+ * explicit generator is not in place. So it make sense to discuss the various
+ * potential scenarios:<ul>
+ * <li>
+ * <i>"embedded" composite identifier</i> - this is possible only in HBM mappings
+ * as {@code <composite-id/>} (notice the lack of both a name and class attribute
+ * declarations). The term {@link org.hibernate.mapping.Component#isEmbedded() "embedded"}
+ * here refers to the Hibernate usage which is actually the exact opposite of the JPA
+ * meaning of "embedded". Essentially this means that the entity class itself holds
+ * the named composite pk properties. This is very similar to the JPA {@code @IdClass}
+ * usage, though without a separate pk-class for loading.
+ * </li>
+ * <li>
+ * <i>pk-class as entity attribute</i> - this is possible in both annotations ({@code @EmbeddedId})
+ * and HBM mappings ({@code <composite-id name="idAttributeName" class="PkClassName"/>})
+ * </li>
+ * <li>
+ * <i>"embedded" composite identifier with a pk-class</i> - this is the JPA {@code @IdClass} use case
+ * and is only possible in annotations
+ * </li>
+ * </ul>
+ * <p/>
+ * Most of the grunt work is done in {@link org.hibernate.mapping.Component}.
+ *
+ * @author Steve Ebersole
+ */
+public class CompositeNestedGeneratedValueGenerator implements IdentifierGenerator, Serializable {
+ public static interface GenerationContextLocator {
+ public Serializable locateGenerationContext(SessionImplementor session, Object incomingObject);
+ }
+
+ public static interface GenerationPlan {
+ public void execute(SessionImplementor session, Object incomingObject);
+ }
+
+ private final GenerationContextLocator generationContextLocator;
+ private List generationPlans = new ArrayList();
+
+ public CompositeNestedGeneratedValueGenerator(GenerationContextLocator generationContextLocator) {
+ this.generationContextLocator = generationContextLocator;
+ }
+
+ public void addGeneratedValuePlan(GenerationPlan plan) {
+ generationPlans.add( plan );
+ }
+
+ public Serializable generate(SessionImplementor session, Object object) throws HibernateException {
+ final Serializable context = generationContextLocator.locateGenerationContext( session, object );
+
+ Iterator itr = generationPlans.iterator();
+ while ( itr.hasNext() ) {
+ final GenerationPlan plan = (GenerationPlan) itr.next();
+ plan.execute( session, context );
+ }
+
+ return context;
+ }
+
+}
Modified: core/trunk/core/src/main/java/org/hibernate/mapping/Component.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/mapping/Component.java 2010-01-21 17:51:09 UTC (rev 18600)
+++ core/trunk/core/src/main/java/org/hibernate/mapping/Component.java 2010-01-21 19:37:01 UTC (rev 18601)
@@ -1,10 +1,10 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
- * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
- * distributed under license by Red Hat Middleware LLC.
+ * distributed under license by Red Hat Inc.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
@@ -20,17 +20,30 @@
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
- *
*/
package org.hibernate.mapping;
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.hibernate.EntityMode;
+import org.hibernate.HibernateException;
import org.hibernate.MappingException;
+import org.hibernate.dialect.Dialect;
+import org.hibernate.engine.SessionImplementor;
+import org.hibernate.id.CompositeNestedGeneratedValueGenerator;
+import org.hibernate.id.IdentifierGenerator;
+import org.hibernate.id.factory.IdentifierGeneratorFactory;
+import org.hibernate.property.Getter;
+import org.hibernate.property.PropertyAccessor;
+import org.hibernate.property.Setter;
import org.hibernate.tuple.component.ComponentMetamodel;
import org.hibernate.type.ComponentType;
import org.hibernate.type.EmbeddedComponentType;
@@ -41,10 +54,11 @@
/**
* The mapping for a component, composite element,
* composite identifier, etc.
+ *
* @author Gavin King
+ * @author Steve Ebersole
*/
public class Component extends SimpleValue implements MetaAttributable {
-
private ArrayList properties = new ArrayList();
private String componentClassName;
private boolean embedded;
@@ -295,4 +309,135 @@
return getClass().getName() + '(' + properties.toString() + ')';
}
+ private IdentifierGenerator builtIdentifierGenerator;
+
+ public IdentifierGenerator createIdentifierGenerator(
+ IdentifierGeneratorFactory identifierGeneratorFactory,
+ Dialect dialect,
+ String defaultCatalog,
+ String defaultSchema,
+ RootClass rootClass) throws MappingException {
+ if ( builtIdentifierGenerator == null ) {
+ builtIdentifierGenerator = buildIdentifierGenerator(
+ identifierGeneratorFactory,
+ dialect,
+ defaultCatalog,
+ defaultSchema,
+ rootClass
+ );
+ }
+ return builtIdentifierGenerator;
+ }
+
+ private IdentifierGenerator buildIdentifierGenerator(
+ IdentifierGeneratorFactory identifierGeneratorFactory,
+ Dialect dialect,
+ String defaultCatalog,
+ String defaultSchema,
+ RootClass rootClass) throws MappingException {
+ final boolean hasCustomGenerator = ! DEFAULT_ID_GEN_STRATEGY.equals( getIdentifierGeneratorStrategy() );
+ if ( hasCustomGenerator ) {
+ return super.createIdentifierGenerator(
+ identifierGeneratorFactory, dialect, defaultCatalog, defaultSchema, rootClass
+ );
+ }
+
+ final Class entityClass = rootClass.getMappedClass();
+ final Class attributeDeclarer; // what class is the declarer of the composite pk attributes
+ CompositeNestedGeneratedValueGenerator.GenerationContextLocator locator;
+
+ // IMPL NOTE : See the javadoc discussion on CompositeNestedGeneratedValueGenerator wrt the
+ // various scenarios for which we need to account here
+ if ( isEmbedded() ) {
+ // we have the "straight up" embedded (again the hibernate term) component identifier
+ attributeDeclarer = entityClass;
+ }
+ else if ( rootClass.getIdentifierProperty() != null ) {
+ // we have the "@EmbeddedId" / <composite-id name="idName"/> case
+ attributeDeclarer = resolveComponentClass();
+ }
+ else {
+ // we have the @IdClass / <composite-id mapped="true"/> case
+ attributeDeclarer = resolveComponentClass();
+ }
+
+ locator = new StandardGenerationContextLocator( rootClass.getEntityName() );
+ final CompositeNestedGeneratedValueGenerator generator = new CompositeNestedGeneratedValueGenerator( locator );
+
+ Iterator itr = getPropertyIterator();
+ while ( itr.hasNext() ) {
+ final Property property = (Property) itr.next();
+ if ( property.getValue().isSimpleValue() ) {
+ final SimpleValue value = (SimpleValue) property.getValue();
+
+ if ( DEFAULT_ID_GEN_STRATEGY.equals( value.getIdentifierGeneratorStrategy() ) ) {
+ // skip any 'assigned' generators, they would have been handled by
+ // the StandardGenerationContextLocator
+ continue;
+ }
+
+ final IdentifierGenerator valueGenerator = value.createIdentifierGenerator(
+ identifierGeneratorFactory,
+ dialect,
+ defaultCatalog,
+ defaultSchema,
+ rootClass
+ );
+ final Setter injector = property.getPropertyAccessor( attributeDeclarer )
+ .getSetter( attributeDeclarer, property.getName() );
+ generator.addGeneratedValuePlan(
+ new ValueGenerationPlan(
+ property.getName(),
+ valueGenerator,
+ injector
+ )
+ );
+ }
+ }
+ return generator;
+ }
+
+ private Class resolveComponentClass() {
+ try {
+ return getComponentClass();
+ }
+ catch ( Exception e ) {
+ return null;
+ }
+ }
+
+ public static class StandardGenerationContextLocator
+ implements CompositeNestedGeneratedValueGenerator.GenerationContextLocator {
+ private final String entityName;
+
+ public StandardGenerationContextLocator(String entityName) {
+ this.entityName = entityName;
+ }
+
+ public Serializable locateGenerationContext(SessionImplementor session, Object incomingObject) {
+ return session.getEntityPersister( entityName, incomingObject )
+ .getIdentifier( incomingObject, session.getEntityMode() );
+ }
+ }
+
+ public static class ValueGenerationPlan implements CompositeNestedGeneratedValueGenerator.GenerationPlan {
+ private final String propertyName;
+ private final IdentifierGenerator subGenerator;
+ private final Setter injector;
+
+ public ValueGenerationPlan(
+ String propertyName,
+ IdentifierGenerator subGenerator,
+ Setter injector) {
+ this.propertyName = propertyName;
+ this.subGenerator = subGenerator;
+ this.injector = injector;
+ }
+
+ public void execute(SessionImplementor session, Object incomingObject) {
+ final Object generatedValue = subGenerator.generate( session, incomingObject );
+ injector.set( incomingObject, generatedValue, session.getFactory() );
+ }
+ }
+
}
Modified: core/trunk/core/src/main/java/org/hibernate/mapping/SimpleValue.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/mapping/SimpleValue.java 2010-01-21 17:51:09 UTC (rev 18600)
+++ core/trunk/core/src/main/java/org/hibernate/mapping/SimpleValue.java 2010-01-21 19:37:01 UTC (rev 18601)
@@ -46,11 +46,12 @@
* @author Gavin King
*/
public class SimpleValue implements KeyValue {
+ public static final String DEFAULT_ID_GEN_STRATEGY = "assigned";
private final List columns = new ArrayList();
private String typeName;
private Properties identifierGeneratorProperties;
- private String identifierGeneratorStrategy = "assigned";
+ private String identifierGeneratorStrategy = DEFAULT_ID_GEN_STRATEGY;
private String nullValue;
private Table table;
private String foreignKeyName;
@@ -124,8 +125,7 @@
Dialect dialect,
String defaultCatalog,
String defaultSchema,
- RootClass rootClass)
- throws MappingException {
+ RootClass rootClass) throws MappingException {
Properties params = new Properties();
14 years, 3 months
Hibernate SVN: r18600 - in core/trunk/annotations/src: main/java/org/hibernate/cfg/annotations and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2010-01-21 12:51:09 -0500 (Thu, 21 Jan 2010)
New Revision: 18600
Added:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java
Removed:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepTest.java
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/ClassPropertyHolder.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/ComponentPropertyHolder.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/OneToOneSecondPass.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/PropertyBinder.java
Log:
HHH-4529 clean @Id/@EmbeddedId mapping and merge with the regular basic and component mapping to open possibilities for @Id @ManyToOne support
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -1253,27 +1253,11 @@
}
final XClass returnedClass = inferredData.getClassOrElement();
- boolean isId;
- if ( !entityBinder.isIgnoreIdAnnotations() &&
+
+ boolean isId = !entityBinder.isIgnoreIdAnnotations() &&
( property.isAnnotationPresent( Id.class )
- || property.isAnnotationPresent( EmbeddedId.class ) ) ) {
- isId = true;
- //Override from @MapsId if needed
- columns = overrideColumnFromMapsIdProperty( "", columns, propertyHolder, entityBinder, mappings );
- processId(
- propertyHolder,
- property,
- inferredData,
- classGenerators,
- entityBinder,
- isIdentifierMapper,
- mappings,
- inheritanceStatePerClass,
- columns,
- returnedClass
- );
- }
- else if ( property.isAnnotationPresent( Version.class ) ) {
+ || property.isAnnotationPresent( EmbeddedId.class ) );
+ if ( property.isAnnotationPresent( Version.class ) ) {
if ( isIdentifierMapper ) {
throw new AnnotationException(
"@IdClass class should not have @Version property"
@@ -1304,7 +1288,7 @@
propBinder.setReturnedClass( inferredData.getPropertyClass() );
propBinder.setMappings( mappings );
propBinder.setDeclaringClass( inferredData.getDeclaringClass() );
- Property prop = propBinder.bind();
+ Property prop = propBinder.makePropertyValueAndBind();
propBinder.getSimpleValueBinder().setVersion(true);
rootClass.setVersion( prop );
@@ -1695,19 +1679,26 @@
collectionBinder.bind();
}
- else {
+ //Either a regular property or a basic @Id or @EmbeddedId while not ignoring id annotations
+ else if ( !isId || !entityBinder.isIgnoreIdAnnotations() ) {
//define whether the type is a component or not
boolean isComponent;
- Embeddable embeddableAnn = returnedClass.getAnnotation( Embeddable.class );
- Embedded embeddedAnn = property.getAnnotation( Embedded.class );
- isComponent = embeddedAnn != null || embeddableAnn != null;
-
+ isComponent = property.isAnnotationPresent( Embedded.class )
+ || property.isAnnotationPresent( EmbeddedId.class )
+ || returnedClass.isAnnotationPresent( Embeddable.class );
+ PropertyBinder propertyBinder;
if ( isComponent ) {
AccessType propertyAccessor = entityBinder.getPropertyAccessor( property );
- bindComponent(
- inferredData, propertyHolder, propertyAccessor, entityBinder,
+ propertyBinder = bindComponent(
+ inferredData,
+ propertyHolder,
+ propertyAccessor,
+ entityBinder,
isIdentifierMapper,
- mappings, isComponentEmbedded, inheritanceStatePerClass
+ mappings,
+ isComponentEmbedded,
+ isId,
+ inheritanceStatePerClass
);
}
else {
@@ -1720,36 +1711,54 @@
lazy = ann.fetch() == FetchType.LAZY;
}
//implicit type will check basic types and Serializable classes
- if ( !optional && nullability != Nullability.FORCED_NULL ) {
+ if ( isId || ( !optional && nullability != Nullability.FORCED_NULL ) ) {
//force columns to not null
for (Ejb3Column col : columns) {
col.forceNotNull();
}
}
-
//Override from @MapsId if needed
- if ( propertyHolder.isOrWithinEmbeddedId() ) {
- columns = overrideColumnFromMapsIdProperty( property.getName(), columns, propertyHolder, entityBinder, mappings );
+ if ( isId || propertyHolder.isOrWithinEmbeddedId() ) {
+ columns = overrideColumnFromMapsIdProperty(
+ isId ? "" : property.getName(), //@MapsId("") points to the id property
+ columns,
+ propertyHolder,
+ entityBinder,
+ mappings );
}
- PropertyBinder propBinder = new PropertyBinder();
- propBinder.setName( inferredData.getPropertyName() );
- propBinder.setReturnedClassName( inferredData.getTypeName() );
- propBinder.setLazy( lazy );
- propBinder.setAccessType( inferredData.getDefaultAccess() );
- propBinder.setColumns( columns );
- propBinder.setHolder( propertyHolder );
- propBinder.setProperty( property );
- propBinder.setReturnedClass( inferredData.getPropertyClass() );
- propBinder.setMappings( mappings );
+ propertyBinder = new PropertyBinder();
+ propertyBinder.setName( inferredData.getPropertyName() );
+ propertyBinder.setReturnedClassName( inferredData.getTypeName() );
+ propertyBinder.setLazy( lazy );
+ propertyBinder.setAccessType( inferredData.getDefaultAccess() );
+ propertyBinder.setColumns( columns );
+ propertyBinder.setHolder( propertyHolder );
+ propertyBinder.setProperty( property );
+ propertyBinder.setReturnedClass( inferredData.getPropertyClass() );
+ propertyBinder.setMappings( mappings );
if ( isIdentifierMapper ) {
- propBinder.setInsertable( false );
- propBinder.setUpdatable( false );
+ propertyBinder.setInsertable( false );
+ propertyBinder.setUpdatable( false );
}
- propBinder.setDeclaringClass( inferredData.getDeclaringClass() );
- propBinder.bind();
+ propertyBinder.setDeclaringClass( inferredData.getDeclaringClass() );
+ propertyBinder.setId(isId);
+ propertyBinder.setInheritanceStatePerClass(inheritanceStatePerClass);
+ propertyBinder.makePropertyValueAndBind();
}
+ if (isId) {
+ //components and regular basic types create SimpleValue objects
+ final SimpleValue value = ( SimpleValue ) propertyBinder.getValue();
+ processId(
+ propertyHolder,
+ inferredData,
+ value,
+ classGenerators,
+ isIdentifierMapper,
+ mappings
+ );
+ }
}
//init index
//process indexes after everything: in second pass, many to one has to be done before indexes
@@ -1785,14 +1794,15 @@
}
}
- private static void processId(PropertyHolder propertyHolder, XProperty property, PropertyData inferredData, HashMap<String, IdGenerator> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, ExtendedMappings mappings, Map<XClass, InheritanceState> inheritanceStatePerClass, Ejb3Column[] columns, XClass returnedClass) {
+ private static void processId(PropertyHolder propertyHolder, PropertyData inferredData, SimpleValue idValue, HashMap<String, IdGenerator> classGenerators, boolean isIdentifierMapper, ExtendedMappings mappings) {
if ( isIdentifierMapper ) {
throw new AnnotationException(
"@IdClass class should not have @Id nor @EmbeddedId properties: "
+ BinderHelper.getPath( propertyHolder, inferredData )
);
}
- log.trace( "{} is an id", inferredData.getPropertyName() );
+ XClass returnedClass = inferredData.getClassOrElement();
+ XProperty property = inferredData.getProperty();
//clone classGenerator and override with local values
HashMap<String, IdGenerator> localGenerators = (HashMap<String, IdGenerator>) classGenerators.clone();
localGenerators.putAll( buildLocalGenerators( property, mappings ) );
@@ -1801,32 +1811,17 @@
//guess if its a component and find id data access (property, field etc)
final boolean isComponent = returnedClass.isAnnotationPresent( Embeddable.class )
|| property.isAnnotationPresent( EmbeddedId.class );
- AccessType propertyAccessor = entityBinder.getPropertyAccessor( returnedClass );
GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class );
String generatorType = generatedValue != null ?
generatorType( generatedValue.strategy() ) :
"assigned";
- String generator = generatedValue != null ?
+ String generatorName = generatedValue != null ?
generatedValue.generator() :
BinderHelper.ANNOTATION_STRING_DEFAULT;
if ( isComponent ) generatorType = "assigned"; //a component must not have any generator
+ BinderHelper.makeIdGenerator( idValue, generatorType, generatorName, mappings, localGenerators );
- bindId(
- generatorType,
- generator,
- inferredData,
- columns,
- propertyHolder,
- localGenerators,
- isComponent,
- propertyAccessor, entityBinder,
- false,
- isIdentifierMapper,
- mappings,
- inheritanceStatePerClass
- );
-
log.trace(
"Bind {} on {}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName()
);
@@ -1963,29 +1958,50 @@
collectionBinder.setInverseJoinColumns( inverseJoinColumns );
}
- private static void bindComponent(
+ private static PropertyBinder bindComponent(
PropertyData inferredData,
PropertyHolder propertyHolder,
- AccessType propertyAccessor, EntityBinder entityBinder,
+ AccessType propertyAccessor,
+ EntityBinder entityBinder,
boolean isIdentifierMapper,
- ExtendedMappings mappings, boolean isComponentEmbedded,
+ ExtendedMappings mappings,
+ boolean isComponentEmbedded,
+ boolean isId,
Map<XClass, InheritanceState> inheritanceStatePerClass
) {
Component comp = fillComponent(
- propertyHolder, inferredData, propertyAccessor, true, entityBinder,
+ propertyHolder, inferredData, propertyAccessor, !isId, entityBinder,
isComponentEmbedded, isIdentifierMapper,
false, mappings, inheritanceStatePerClass
);
+ if (isId) {
+ comp.setKey( true );
+ if ( propertyHolder.getPersistentClass().getIdentifier() != null ) {
+ throw new AnnotationException(
+ comp.getComponentClassName()
+ + " must not have @Id properties when used as an @EmbeddedId: "
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
+ }
+ if ( comp.getPropertySpan() == 0 ) {
+ throw new AnnotationException( comp.getComponentClassName()
+ + " has no persistent id property"
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
+ }
+ }
XProperty property = inferredData.getProperty();
setupComponentTuplizer( property, comp );
-
PropertyBinder binder = new PropertyBinder();
binder.setName( inferredData.getPropertyName() );
binder.setValue( comp );
binder.setProperty( inferredData.getProperty() );
binder.setAccessType( inferredData.getDefaultAccess() );
- Property prop = binder.make();
- propertyHolder.addProperty( prop, inferredData.getDeclaringClass() );
+ binder.setEmbedded( isComponentEmbedded );
+ binder.setHolder( propertyHolder );
+ binder.setId( isId );
+ binder.setInheritanceStatePerClass( inheritanceStatePerClass );
+ binder.setMappings( mappings );
+ binder.makePropertyAndBind();
+ return binder;
}
public static Component fillComponent(
@@ -2159,7 +2175,7 @@
binder.setValue( id );
binder.setAccessType( inferredData.getDefaultAccess() );
binder.setProperty( inferredData.getProperty() );
- Property prop = binder.make();
+ Property prop = binder.makeProperty();
rootClass.setIdentifierProperty( prop );
//if the id property is on a superclass, update the metamodel
final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull(
@@ -2291,7 +2307,7 @@
binder.setAccessType( inferredData.getDefaultAccess() );
binder.setCascade( cascadeStrategy );
binder.setProperty( property );
- Property prop = binder.make();
+ Property prop = binder.makeProperty();
//composite FK columns are in the same table so its OK
propertyHolder.addProperty( prop, columns, inferredData.getDeclaringClass() );
}
@@ -2446,7 +2462,7 @@
}
binder.setAccessType( inferredData.getDefaultAccess() );
binder.setCascade( cascadeStrategy );
- Property prop = binder.make();
+ Property prop = binder.makeProperty();
//composite FK columns are in the same table so its OK
propertyHolder.addProperty( prop, columns, inferredData.getDeclaringClass() );
}
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/ClassPropertyHolder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/ClassPropertyHolder.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/ClassPropertyHolder.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -72,7 +72,7 @@
public void addProperty(Property prop, Ejb3Column[] columns, XClass declaringClass) {
//Ejb3Column.checkPropertyConsistency( ); //already called earlier
- if ( columns[0].isSecondary() ) {
+ if ( columns != null && columns[0].isSecondary() ) {
//TODO move the getJoin() code here?
final Join join = columns[0].getJoin();
addPropertyToJoin( prop, declaringClass, join );
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/ComponentPropertyHolder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/ComponentPropertyHolder.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/ComponentPropertyHolder.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -61,17 +61,19 @@
* if not, change the component table if no properties are set
* if a property is set already the core cannot support that
*/
- Table table = columns[0].getTable();
- if ( !table.equals( component.getTable() ) ) {
- if ( component.getPropertySpan() == 0 ) {
- component.setTable( table );
+ if (columns != null) {
+ Table table = columns[0].getTable();
+ if ( !table.equals( component.getTable() ) ) {
+ if ( component.getPropertySpan() == 0 ) {
+ component.setTable( table );
+ }
+ else {
+ throw new AnnotationException(
+ "A component cannot hold properties split into 2 different tables: "
+ + this.getPath()
+ );
+ }
}
- else {
- throw new AnnotationException(
- "A component cannot hold properties split into 2 different tables: "
- + this.getPath()
- );
- }
}
addProperty( prop, declaringClass );
}
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/OneToOneSecondPass.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/OneToOneSecondPass.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/OneToOneSecondPass.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -106,7 +106,7 @@
binder.setValue( value );
binder.setCascade( cascadeStrategy );
binder.setAccessType( inferredData.getDefaultAccess() );
- Property prop = binder.make();
+ Property prop = binder.makeProperty();
if ( BinderHelper.isDefault( mappedBy ) ) {
/*
* we need to check if the columns are in the right order
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -522,7 +522,7 @@
binder.setProperty( property );
binder.setInsertable( insertable );
binder.setUpdatable( updatable );
- Property prop = binder.make();
+ Property prop = binder.makeProperty();
//we don't care about the join stuffs because the column is on the association table.
if (! declaringClassSet) throw new AssertionFailure( "DeclaringClass is not set in CollectionBinder while binding" );
propertyHolder.addProperty( prop, declaringClass );
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/PropertyBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/PropertyBinder.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/PropertyBinder.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -23,29 +23,35 @@
*/
package org.hibernate.cfg.annotations;
+import java.util.Map;
import javax.persistence.EmbeddedId;
import javax.persistence.Id;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.hibernate.AnnotationException;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import org.hibernate.annotations.Immutable;
import org.hibernate.annotations.NaturalId;
import org.hibernate.annotations.OptimisticLock;
+import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.annotations.common.reflection.XClass;
import org.hibernate.annotations.common.reflection.XProperty;
-import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.cfg.AccessType;
+import org.hibernate.cfg.BinderHelper;
import org.hibernate.cfg.Ejb3Column;
import org.hibernate.cfg.ExtendedMappings;
+import org.hibernate.cfg.InheritanceState;
import org.hibernate.cfg.PropertyHolder;
+import org.hibernate.mapping.KeyValue;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.PropertyGeneration;
+import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.SimpleValue;
import org.hibernate.mapping.Value;
import org.hibernate.util.StringHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* @author Emmanuel Bernard
@@ -66,13 +72,21 @@
private SimpleValueBinder simpleValueBinder;
private XClass declaringClass;
private boolean declaringClassSet;
-
+ private boolean embedded;
+
+ public void setEmbedded(boolean embedded) {
+ this.embedded = embedded;
+ }
+
/*
- * property can be null
- * prefer propertyName to property.getName() since some are overloaded
- */
+ * property can be null
+ * prefer propertyName to property.getName() since some are overloaded
+ */
private XProperty property;
private XClass returnedClass;
+ private boolean isId;
+ private Map<XClass, InheritanceState> inheritanceStatePerClass;
+ private Property mappingProperty;
public void setInsertable(boolean insertable) {
this.insertable = insertable;
@@ -82,7 +96,6 @@
this.updatable = updatable;
}
-
public void setName(String name) {
this.name = name;
}
@@ -128,12 +141,14 @@
}
private void validateBind() {
- if (property.isAnnotationPresent(Immutable.class)) {
- throw new AnnotationException("@Immutable on property not allowed. " +
- "Only allowed on entity level or on a collection.");
+ if ( property.isAnnotationPresent( Immutable.class ) ) {
+ throw new AnnotationException(
+ "@Immutable on property not allowed. " +
+ "Only allowed on entity level or on a collection."
+ );
}
if ( !declaringClassSet ) {
- throw new AssertionFailure( "declaringClass has not been set before a bind");
+ throw new AssertionFailure( "declaringClass has not been set before a bind" );
}
}
@@ -141,7 +156,7 @@
//TODO check necessary params for a make
}
- public Property bind() {
+ private Property makePropertyAndValue() {
validateBind();
log.debug( "binding property {} with lazy={}", name, lazy );
String containerClassName = holder == null ?
@@ -157,12 +172,51 @@
simpleValueBinder.setMappings( mappings );
SimpleValue propertyValue = simpleValueBinder.make();
setValue( propertyValue );
- Property prop = make();
- holder.addProperty( prop, columns, declaringClass );
+ return makeProperty();
+ }
+
+ //used when value is provided
+ public Property makePropertyAndBind() {
+ return bind( makeProperty() );
+ }
+
+ //used to build everything from scratch
+ public Property makePropertyValueAndBind() {
+ return bind( makePropertyAndValue() );
+ }
+
+ private Property bind(Property prop) {
+ if (isId) {
+ final RootClass rootClass = ( RootClass ) holder.getPersistentClass();
+ rootClass.setIdentifier( ( KeyValue ) getValue() );
+
+ if (embedded) {
+ rootClass.setEmbeddedIdentifier( true );
+ }
+ else {
+ rootClass.setIdentifierProperty( prop );
+ final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull(
+ declaringClass,
+ inheritanceStatePerClass,
+ mappings
+ );
+ if (superclass != null) {
+ superclass.setDeclaredIdentifierProperty(prop);
+ }
+ else {
+ //we know the property is on the actual entity
+ rootClass.setDeclaredIdentifierProperty( prop );
+ }
+ }
+ }
+ else {
+ holder.addProperty( prop, columns, declaringClass );
+ }
return prop;
}
- public Property make() {
+ //used when the value is provided and the binding is done elsewhere
+ public Property makeProperty() {
validateMake();
log.debug( "Building property " + name );
Property prop = new Property();
@@ -182,8 +236,10 @@
if ( !GenerationTime.NEVER.equals( generated ) ) {
if ( property.isAnnotationPresent( javax.persistence.Version.class )
&& GenerationTime.INSERT.equals( generated ) ) {
- throw new AnnotationException( "@Generated(INSERT) on a @Version property not allowed, use ALWAYS: "
- + StringHelper.qualify( holder.getPath(), name ) );
+ throw new AnnotationException(
+ "@Generated(INSERT) on a @Version property not allowed, use ALWAYS: "
+ + StringHelper.qualify( holder.getPath(), name )
+ );
}
insertable = false;
if ( GenerationTime.ALWAYS.equals( generated ) ) {
@@ -213,11 +269,14 @@
property.isAnnotationPresent( javax.persistence.Version.class )
|| property.isAnnotationPresent( Id.class )
|| property.isAnnotationPresent( EmbeddedId.class ) ) ) {
- throw new AnnotationException( "@OptimisticLock.exclude=true incompatible with @Id, @EmbeddedId and @Version: "
- + StringHelper.qualify( holder.getPath(), name ) );
+ throw new AnnotationException(
+ "@OptimisticLock.exclude=true incompatible with @Id, @EmbeddedId and @Version: "
+ + StringHelper.qualify( holder.getPath(), name )
+ );
}
}
log.trace( "Cascading " + name + " with " + cascade );
+ this.mappingProperty = prop;
return prop;
}
@@ -233,4 +292,15 @@
return simpleValueBinder;
}
+ public Value getValue() {
+ return value;
+ }
+
+ public void setId(boolean id) {
+ this.isId = id;
+ }
+
+ public void setInheritanceStatePerClass(Map<XClass, InheritanceState> inheritanceStatePerClass) {
+ this.inheritanceStatePerClass = inheritanceStatePerClass;
+ }
}
Copied: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java (from rev 18597, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepTest.java)
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -0,0 +1,72 @@
+package org.hibernate.test.annotations.derivedidentities.e4.b;
+
+import java.util.Date;
+
+import org.hibernate.Session;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentitySimpleParentSimpleDepMapsIdTest extends TestCase {
+
+ public void testOneToOneExplicitJoinColumn() throws Exception {
+ assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK", getCfg() ) );
+ assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "id", getCfg() ) );
+ Person e = new Person();
+ e.ssn = "aaa";
+ Session s = openSession( );
+ s.getTransaction().begin();
+ s.persist( e );
+ MedicalHistory d = new MedicalHistory();
+ d.patient = e;
+ d.id = "aaa"; //FIXME not needed when foreign is enabled
+ s.persist( d );
+ s.flush();
+ s.clear();
+ d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
+ assertEquals( d.id, d.patient.ssn );
+ d.lastupdate = new Date();
+ s.flush();
+ s.clear();
+ d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
+ assertNotNull( d.lastupdate );
+ s.getTransaction().rollback();
+ s.close();
+ }
+
+ public void testManyToOneExplicitJoinColumn() throws Exception {
+ assertTrue( SchemaUtil.isColumnPresent( "FinancialHistory", "FK", getCfg() ) );
+ assertTrue( ! SchemaUtil.isColumnPresent( "FinancialHistory", "id", getCfg() ) );
+ Person e = new Person();
+ e.ssn = "aaa";
+ Session s = openSession( );
+ s.getTransaction().begin();
+ s.persist( e );
+ FinancialHistory d = new FinancialHistory();
+ d.patient = e;
+ d.id = "aaa"; //FIXME not needed when foreign is enabled
+ s.persist( d );
+ s.flush();
+ s.clear();
+ d = (FinancialHistory) s.get( FinancialHistory.class, d.id );
+ assertEquals( d.id, d.patient.ssn );
+ d.lastupdate = new Date();
+ s.flush();
+ s.clear();
+ d = (FinancialHistory) s.get( FinancialHistory.class, d.id );
+ assertNotNull( d.lastupdate );
+ s.getTransaction().rollback();
+ s.close();
+ }
+
+ @Override
+ protected Class<?>[] getMappings() {
+ return new Class<?>[] {
+ MedicalHistory.class,
+ Person.class,
+ FinancialHistory.class
+ };
+ }
+}
\ No newline at end of file
Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepTest.java 2010-01-21 13:16:05 UTC (rev 18599)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepTest.java 2010-01-21 17:51:09 UTC (rev 18600)
@@ -1,72 +0,0 @@
-package org.hibernate.test.annotations.derivedidentities.e4.b;
-
-import java.util.Date;
-
-import org.hibernate.Session;
-import org.hibernate.test.annotations.TestCase;
-import org.hibernate.test.util.SchemaUtil;
-
-/**
- * @author Emmanuel Bernard
- */
-public class DerivedIdentitySimpleParentSimpleDepTest extends TestCase {
-
- public void testOneToOneExplicitJoinColumn() throws Exception {
- assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK", getCfg() ) );
- assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "id", getCfg() ) );
- Person e = new Person();
- e.ssn = "aaa";
- Session s = openSession( );
- s.getTransaction().begin();
- s.persist( e );
- MedicalHistory d = new MedicalHistory();
- d.patient = e;
- d.id = "aaa"; //FIXME not needed when foreign is enabled
- s.persist( d );
- s.flush();
- s.clear();
- d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
- assertEquals( d.id, d.patient.ssn );
- d.lastupdate = new Date();
- s.flush();
- s.clear();
- d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
- assertNotNull( d.lastupdate );
- s.getTransaction().rollback();
- s.close();
- }
-
- public void testManyToOneExplicitJoinColumn() throws Exception {
- assertTrue( SchemaUtil.isColumnPresent( "FinancialHistory", "FK", getCfg() ) );
- assertTrue( ! SchemaUtil.isColumnPresent( "FinancialHistory", "id", getCfg() ) );
- Person e = new Person();
- e.ssn = "aaa";
- Session s = openSession( );
- s.getTransaction().begin();
- s.persist( e );
- FinancialHistory d = new FinancialHistory();
- d.patient = e;
- d.id = "aaa"; //FIXME not needed when foreign is enabled
- s.persist( d );
- s.flush();
- s.clear();
- d = (FinancialHistory) s.get( FinancialHistory.class, d.id );
- assertEquals( d.id, d.patient.ssn );
- d.lastupdate = new Date();
- s.flush();
- s.clear();
- d = (FinancialHistory) s.get( FinancialHistory.class, d.id );
- assertNotNull( d.lastupdate );
- s.getTransaction().rollback();
- s.close();
- }
-
- @Override
- protected Class<?>[] getMappings() {
- return new Class<?>[] {
- MedicalHistory.class,
- Person.class,
- FinancialHistory.class
- };
- }
-}
\ No newline at end of file
14 years, 3 months
Hibernate SVN: r18599 - core/trunk/annotations/src/main/java/org/hibernate/cfg.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2010-01-21 08:16:05 -0500 (Thu, 21 Jan 2010)
New Revision: 18599
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
core/trunk/annotations/src/main/java/org/hibernate/cfg/BinderHelper.java
Log:
Minor
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-21 12:56:06 UTC (rev 18598)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-21 13:16:05 UTC (rev 18599)
@@ -1184,7 +1184,7 @@
else {
throw new AnnotationException(
"@Parent cannot be applied outside an embeddable object: "
- + StringHelper.qualify( propertyHolder.getPath(), property.getName() )
+ + BinderHelper.getPath( propertyHolder, inferredData )
);
}
return;
@@ -1236,7 +1236,7 @@
}
else if ( joinColumns == null && property.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) {
throw new AnnotationException( "@Any requires an explicit @JoinColumn(s): "
- + StringHelper.qualify( propertyHolder.getPath(), property.getName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
if ( columns == null && !property.isAnnotationPresent( ManyToMany.class ) ) {
//useful for collection of embedded elements
@@ -1260,49 +1260,18 @@
isId = true;
//Override from @MapsId if needed
columns = overrideColumnFromMapsIdProperty( "", columns, propertyHolder, entityBinder, mappings );
- if ( isIdentifierMapper ) {
- throw new AnnotationException(
- "@IdClass class should not have @Id nor @EmbeddedId properties"
- );
- }
- log.trace( "{} is an id", inferredData.getPropertyName() );
- //clone classGenerator and override with local values
- HashMap<String, IdGenerator> localGenerators = (HashMap<String, IdGenerator>) classGenerators.clone();
- localGenerators.putAll( buildLocalGenerators( property, mappings ) );
-
- //manage composite related metadata
- //guess if its a component and find id data access (property, field etc)
- final boolean isComponent = returnedClass.isAnnotationPresent( Embeddable.class )
- || property.isAnnotationPresent( EmbeddedId.class );
- AccessType propertyAccessor = entityBinder.getPropertyAccessor( returnedClass );
-
- GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class );
- String generatorType = generatedValue != null ?
- generatorType( generatedValue.strategy() ) :
- "assigned";
- String generator = generatedValue != null ?
- generatedValue.generator() :
- BinderHelper.ANNOTATION_STRING_DEFAULT;
- if ( isComponent ) generatorType = "assigned"; //a component must not have any generator
-
- bindId(
- generatorType,
- generator,
+ processId(
+ propertyHolder,
+ property,
inferredData,
- columns,
- propertyHolder,
- localGenerators,
- isComponent,
- propertyAccessor, entityBinder,
- false,
+ classGenerators,
+ entityBinder,
isIdentifierMapper,
mappings,
- inheritanceStatePerClass
+ inheritanceStatePerClass,
+ columns,
+ returnedClass
);
-
- log.trace(
- "Bind {} on {}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName()
- );
}
else if ( property.isAnnotationPresent( Version.class ) ) {
if ( isIdentifierMapper ) {
@@ -1368,7 +1337,7 @@
if ( property.isAnnotationPresent( Column.class )
|| property.isAnnotationPresent( Columns.class ) ) {
throw new AnnotationException( "@Column(s) not allowed on a @ManyToOne property: "
- + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
Cascade hibernateCascade = property.getAnnotation( Cascade.class );
@@ -1401,7 +1370,7 @@
if ( property.isAnnotationPresent( Column.class )
|| property.isAnnotationPresent( Columns.class ) ) {
throw new AnnotationException( "@Column(s) not allowed on a @OneToOne property: "
- + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
//FIXME support a proper PKJCs
@@ -1438,7 +1407,7 @@
if ( property.isAnnotationPresent( Column.class )
|| property.isAnnotationPresent( Columns.class ) ) {
throw new AnnotationException( "@Column(s) not allowed on a @Any property: "
- + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
Cascade hibernateCascade = property.getAnnotation( Cascade.class );
@@ -1607,7 +1576,7 @@
}
if ( joinKeyColumns != null ) {
throw new AnnotationException( "@MapKeyJoinColumn and @MapKeyJoinColumns used on the same property: "
- + StringHelper.qualify( propertyHolder.getClassName(), property.getName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
}
else if ( property.isAnnotationPresent( MapKeyJoinColumn.class ) ) {
@@ -1816,6 +1785,53 @@
}
}
+ private static void processId(PropertyHolder propertyHolder, XProperty property, PropertyData inferredData, HashMap<String, IdGenerator> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, ExtendedMappings mappings, Map<XClass, InheritanceState> inheritanceStatePerClass, Ejb3Column[] columns, XClass returnedClass) {
+ if ( isIdentifierMapper ) {
+ throw new AnnotationException(
+ "@IdClass class should not have @Id nor @EmbeddedId properties: "
+ + BinderHelper.getPath( propertyHolder, inferredData )
+ );
+ }
+ log.trace( "{} is an id", inferredData.getPropertyName() );
+ //clone classGenerator and override with local values
+ HashMap<String, IdGenerator> localGenerators = (HashMap<String, IdGenerator>) classGenerators.clone();
+ localGenerators.putAll( buildLocalGenerators( property, mappings ) );
+
+ //manage composite related metadata
+ //guess if its a component and find id data access (property, field etc)
+ final boolean isComponent = returnedClass.isAnnotationPresent( Embeddable.class )
+ || property.isAnnotationPresent( EmbeddedId.class );
+ AccessType propertyAccessor = entityBinder.getPropertyAccessor( returnedClass );
+
+ GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class );
+ String generatorType = generatedValue != null ?
+ generatorType( generatedValue.strategy() ) :
+ "assigned";
+ String generator = generatedValue != null ?
+ generatedValue.generator() :
+ BinderHelper.ANNOTATION_STRING_DEFAULT;
+ if ( isComponent ) generatorType = "assigned"; //a component must not have any generator
+
+ bindId(
+ generatorType,
+ generator,
+ inferredData,
+ columns,
+ propertyHolder,
+ localGenerators,
+ isComponent,
+ propertyAccessor, entityBinder,
+ false,
+ isIdentifierMapper,
+ mappings,
+ inheritanceStatePerClass
+ );
+
+ log.trace(
+ "Bind {} on {}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName()
+ );
+ }
+
private static Ejb3JoinColumn[] buildDefaultJoinColumnsForXToOne(PropertyHolder propertyHolder, XProperty property, PropertyData inferredData, EntityBinder entityBinder, ExtendedMappings mappings) {
Ejb3JoinColumn[] joinColumns;
JoinTable joinTableAnn = propertyHolder.getJoinTable( property );
@@ -1827,7 +1843,7 @@
if ( StringHelper.isEmpty( joinTableAnn.name() ) ) {
throw new AnnotationException(
"JoinTable.name() on a @ToOne association has to be explicit: "
- + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() )
+ + BinderHelper.getPath( propertyHolder, inferredData )
);
}
}
@@ -2008,7 +2024,7 @@
comp.setComponentClassName( comp.getOwner().getClassName() );
}
comp.setNodeName( inferredData.getPropertyName() );
- String subpath = StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() );
+ String subpath = BinderHelper.getPath( propertyHolder, inferredData );
log.trace( "Binding component with path: {}", subpath );
PropertyHolder subHolder = PropertyHolderBuilder.buildPropertyHolder(
comp, subpath,
@@ -2409,7 +2425,7 @@
org.hibernate.annotations.Any anyAnn = inferredData.getProperty().getAnnotation( org.hibernate.annotations.Any.class );
if ( anyAnn == null ) {
throw new AssertionFailure( "Missing @Any annotation: "
- + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) );
+ + BinderHelper.getPath( propertyHolder, inferredData ) );
}
Any value = BinderHelper.buildAnyValue( anyAnn.metaDef(), columns, anyAnn.metaColumn(), inferredData,
cascadeOnDelete, nullability, propertyHolder, entityBinder, anyAnn.optional(), mappings );
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/BinderHelper.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/BinderHelper.java 2010-01-21 12:56:06 UTC (rev 18598)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/BinderHelper.java 2010-01-21 13:16:05 UTC (rev 18599)
@@ -648,4 +648,8 @@
null;
}
+ public static String getPath(PropertyHolder holder, PropertyData property) {
+ return StringHelper.qualify( holder.getPath(), property.getPropertyName() );
+ }
+
}
14 years, 3 months
Hibernate SVN: r18598 - core/trunk/annotations/src/main/java/org/hibernate/cfg.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2010-01-21 07:56:06 -0500 (Thu, 21 Jan 2010)
New Revision: 18598
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
Log:
Move to trace level
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-20 22:33:16 UTC (rev 18597)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-01-21 12:56:06 UTC (rev 18598)
@@ -256,7 +256,7 @@
SequenceGenerator ann = pckg.getAnnotation( SequenceGenerator.class );
IdGenerator idGen = buildIdGenerator( ann, mappings );
mappings.addGenerator( idGen );
- log.debug( "Add sequence generator with name: {}", idGen.getName() );
+ log.trace( "Add sequence generator with name: {}", idGen.getName() );
}
if ( pckg.isAnnotationPresent( TableGenerator.class ) ) {
TableGenerator ann = pckg.getAnnotation( TableGenerator.class );
@@ -381,7 +381,7 @@
idGen.addParam( MultipleHiLoPerTableGenerator.PK_VALUE_NAME, tabGen.pkColumnValue() );
}
idGen.addParam( TableHiLoGenerator.MAX_LO, String.valueOf( tabGen.allocationSize() - 1 ) );
- log.debug( "Add table generator with name: {}", idGen.getName() );
+ log.trace( "Add table generator with name: {}", idGen.getName() );
}
else if ( ann instanceof SequenceGenerator ) {
SequenceGenerator seqGen = (SequenceGenerator) ann;
@@ -399,7 +399,7 @@
);
}
idGen.addParam( SequenceHiLoGenerator.MAX_LO, String.valueOf( seqGen.allocationSize() - 1 ) );
- log.debug( "Add sequence generator with name: {}", idGen.getName() );
+ log.trace( "Add sequence generator with name: {}", idGen.getName() );
}
else if ( ann instanceof GenericGenerator ) {
GenericGenerator genGen = (GenericGenerator) ann;
@@ -409,7 +409,7 @@
for (Parameter parameter : params) {
idGen.addParam( parameter.name(), parameter.value() );
}
- log.debug( "Add generic generator with name: {}", idGen.getName() );
+ log.trace( "Add generic generator with name: {}", idGen.getName() );
}
else {
throw new AssertionFailure( "Unknown Generator annotation: " + ann );
@@ -815,7 +815,7 @@
(Map<String, Join>) null, (PropertyHolder) null, mappings
);
}
- log.debug( "Subclass joined column(s) created" );
+ log.trace( "Subclass joined column(s) created" );
}
else {
if ( clazzToProcess.isAnnotationPresent( PrimaryKeyJoinColumns.class )
@@ -1089,7 +1089,7 @@
discriminatorColumn.linkWithValue( discrim );
discrim.setTypeName( discriminatorColumn.getDiscriminatorTypeName() );
rootClass.setPolymorphic( true );
- log.debug( "Setting discriminator for entity {}", rootClass.getEntityName() );
+ log.trace( "Setting discriminator for entity {}", rootClass.getEntityName() );
}
}
@@ -1173,7 +1173,7 @@
*/
Ejb3Column[] columns = null;
- log.debug(
+ log.trace(
"Processing annotations of {}.{}", propertyHolder.getEntityName(), inferredData.getPropertyName()
);
@@ -1253,9 +1253,11 @@
}
final XClass returnedClass = inferredData.getClassOrElement();
+ boolean isId;
if ( !entityBinder.isIgnoreIdAnnotations() &&
( property.isAnnotationPresent( Id.class )
|| property.isAnnotationPresent( EmbeddedId.class ) ) ) {
+ isId = true;
//Override from @MapsId if needed
columns = overrideColumnFromMapsIdProperty( "", columns, propertyHolder, entityBinder, mappings );
if ( isIdentifierMapper ) {
@@ -1263,7 +1265,7 @@
"@IdClass class should not have @Id nor @EmbeddedId properties"
);
}
- log.debug( "{} is an id", inferredData.getPropertyName() );
+ log.trace( "{} is an id", inferredData.getPropertyName() );
//clone classGenerator and override with local values
HashMap<String, IdGenerator> localGenerators = (HashMap<String, IdGenerator>) classGenerators.clone();
localGenerators.putAll( buildLocalGenerators( property, mappings ) );
@@ -1298,7 +1300,7 @@
inheritanceStatePerClass
);
- log.debug(
+ log.trace(
"Bind {} on {}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName()
);
}
@@ -1320,7 +1322,7 @@
+ propertyHolder.getEntityName()
);
}
- log.debug( "{} is a version property", inferredData.getPropertyName() );
+ log.trace( "{} is a version property", inferredData.getPropertyName() );
RootClass rootClass = (RootClass) propertyHolder.getPersistentClass();
PropertyBinder propBinder = new PropertyBinder();
propBinder.setName( inferredData.getPropertyName() );
@@ -1354,7 +1356,7 @@
SimpleValue simpleValue = (SimpleValue) prop.getValue();
simpleValue.setNullValue( "undefined" );
rootClass.setOptimisticLockMode( Versioning.OPTIMISTIC_LOCK_VERSION );
- log.debug(
+ log.trace(
"Version name: {}, unsavedValue: {}", rootClass.getVersion().getName(),
( (SimpleValue) rootClass.getVersion().getValue() ).getNullValue()
);
@@ -2007,7 +2009,7 @@
}
comp.setNodeName( inferredData.getPropertyName() );
String subpath = StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() );
- log.debug( "Binding component with path: {}", subpath );
+ log.trace( "Binding component with path: {}", subpath );
PropertyHolder subHolder = PropertyHolderBuilder.buildPropertyHolder(
comp, subpath,
inferredData, propertyHolder, mappings
@@ -2339,7 +2341,7 @@
) {
//column.getTable() => persistentClass.getTable()
final String propertyName = inferredData.getPropertyName();
- log.debug( "Fetching {} with {}", propertyName, fetchMode );
+ log.trace( "Fetching {} with {}", propertyName, fetchMode );
boolean mapToPK = true;
if ( !trueOneToOne ) {
//try to find a hidden true one to one (FK == PK columns)
14 years, 3 months
Hibernate SVN: r18597 - core/trunk/annotations/src/test/java/org/hibernate/test/annotations.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-01-20 17:33:16 -0500 (Wed, 20 Jan 2010)
New Revision: 18597
Modified:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
Log:
HHH-4822 proper placement of the fillStackTrace call
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-20 21:22:09 UTC (rev 18596)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-20 22:33:16 UTC (rev 18597)
@@ -227,15 +227,10 @@
closeSession();
throw t;
}
- catch ( InvocationTargetException e ) {
- e.fillInStackTrace();
- throw e.getTargetException();
- }
- catch ( IllegalAccessException e ) {
- e.fillInStackTrace();
- throw e;
- }
catch ( Throwable t ) {
+ if ( t instanceof InvocationTargetException || t instanceof IllegalAccessException ) {
+ t.fillInStackTrace();
+ }
closeSession();
if ( failureExpected ) {
FailureExpected ann = runMethod.getAnnotation( FailureExpected.class );
14 years, 3 months
Hibernate SVN: r18596 - core/trunk/annotations/src/test/java/org/hibernate/test/annotations.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-01-20 16:22:09 -0500 (Wed, 20 Jan 2010)
New Revision: 18596
Modified:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
Log:
HHH-4822 - Made sure stacktrace is filled in for InvocationTargetException and IllegalAccessException
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-20 20:31:29 UTC (rev 18595)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/TestCase.java 2010-01-20 21:22:09 UTC (rev 18596)
@@ -25,6 +25,7 @@
package org.hibernate.test.annotations;
import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.sql.Connection;
@@ -226,6 +227,14 @@
closeSession();
throw t;
}
+ catch ( InvocationTargetException e ) {
+ e.fillInStackTrace();
+ throw e.getTargetException();
+ }
+ catch ( IllegalAccessException e ) {
+ e.fillInStackTrace();
+ throw e;
+ }
catch ( Throwable t ) {
closeSession();
if ( failureExpected ) {
14 years, 3 months
Hibernate SVN: r18595 - in core/trunk: documentation and 2 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-01-20 15:31:29 -0500 (Wed, 20 Jan 2010)
New Revision: 18595
Modified:
core/trunk/documentation/pom.xml
core/trunk/jdbc3-testing/pom.xml
core/trunk/jdbc4-testing/pom.xml
core/trunk/pom.xml
Log:
HHH-4823 Reordered module list in top level pom. Also renamed some of the project names. now all project names start with "Hibernate" ;-)
Modified: core/trunk/documentation/pom.xml
===================================================================
--- core/trunk/documentation/pom.xml 2010-01-20 20:18:56 UTC (rev 18594)
+++ core/trunk/documentation/pom.xml 2010-01-20 20:31:29 UTC (rev 18595)
@@ -13,7 +13,7 @@
<artifactId>hibernate-documentation</artifactId>
<packaging>pom</packaging>
- <name>Hibernate Core - Documentation</name>
+ <name>Hibernate Core Documentation</name>
<description>Grouping of Hibernate Core Project documentation modules</description>
<modules>
Modified: core/trunk/jdbc3-testing/pom.xml
===================================================================
--- core/trunk/jdbc3-testing/pom.xml 2010-01-20 20:18:56 UTC (rev 18594)
+++ core/trunk/jdbc3-testing/pom.xml 2010-01-20 20:31:29 UTC (rev 18595)
@@ -34,7 +34,7 @@
<artifactId>hibernate-jdbc3-testing</artifactId>
<packaging>jar</packaging>
- <name>JDBC3-JdbcSupport Testing</name>
+ <name>Hibernate JDBC3-JdbcSupport Testing</name>
<description>Test support of JDBC3 through JdbcSupport</description>
<dependencies>
Modified: core/trunk/jdbc4-testing/pom.xml
===================================================================
--- core/trunk/jdbc4-testing/pom.xml 2010-01-20 20:18:56 UTC (rev 18594)
+++ core/trunk/jdbc4-testing/pom.xml 2010-01-20 20:31:29 UTC (rev 18595)
@@ -32,7 +32,7 @@
</parent>
<artifactId>hibernate-jdbc4-testing</artifactId>
- <name>JDBC4-JdbcSupport Testing</name>
+ <name>Hibernate JDBC4-JdbcSupport Testing</name>
<description>Test support of JDBC4 through JdbcSupport</description>
<build>
Modified: core/trunk/pom.xml
===================================================================
--- core/trunk/pom.xml 2010-01-20 20:18:56 UTC (rev 18594)
+++ core/trunk/pom.xml 2010-01-20 20:31:29 UTC (rev 18595)
@@ -19,6 +19,8 @@
<modules>
<module>parent</module>
<module>core</module>
+ <module>testing</module>
+ <module>testsuite</module>
<module>cache-ehcache</module>
<module>cache-jbosscache</module>
<module>cache-oscache</module>
@@ -28,8 +30,6 @@
<module>annotations</module>
<module>envers</module>
<module>jmx</module>
- <module>testing</module>
- <module>testsuite</module>
<module>jdbc3-testing</module>
<module>cache-infinispan</module>
<!--
@@ -48,9 +48,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
-<!--
- <version>2.0-beta-7</version>
--->
<version>2.0-beta-9</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
@@ -84,9 +81,6 @@
</activation>
<modules>
<module>entitymanager</module>
-<!--
- <module>cache-infinispan</module>
--->
<module>jdbc4-testing</module>
</modules>
</profile>
14 years, 3 months