5 new revisions:
Revision: 7ee4c07714ed
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Thu Mar 7 22:53:48 2013
Log: upgrade to hibernate v3.6.10.Final
http://code.google.com/p/lambico/source/detail?r=7ee4c07714ed
Revision: efe5f66c11f5
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Thu Mar 7 22:54:45 2013
Log: fixture load exception logged as error, not warning
http://code.google.com/p/lambico/source/detail?r=efe5f66c11f5
Revision: 8c920fd0ee35
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Fri Mar 8 08:54:08 2013
Log: FixtureSet is composable across class hierarchy
http://code.google.com/p/lambico/source/detail?r=8c920fd0ee35
Revision: dfa77d292d54
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Fri Mar 8 08:54:32 2013
Log: snakeYAML update & minor cleanups
http://code.google.com/p/lambico/source/detail?r=dfa77d292d54
Revision: 6aa17d9f697e
Branch: default
Author: lucio.benfante <
lucio.b...@gmail.com>
Date: Thu Mar 14 00:46:23 2013
Log: Merged Franzin's updates
http://code.google.com/p/lambico/source/detail?r=6aa17d9f697e
==============================================================================
Revision: 7ee4c07714ed
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Thu Mar 7 22:53:48 2013
Log: upgrade to hibernate v3.6.10.Final
http://code.google.com/p/lambico/source/detail?r=7ee4c07714ed
Modified:
/pom.xml
=======================================
--- /pom.xml Mon Feb 18 15:12:50 2013
+++ /pom.xml Thu Mar 7 22:53:48 2013
@@ -21,7 +21,7 @@
<main.basedir>${basedir}</main.basedir>
<year>2009</year>
<lambico.spring.version>3.0.7.RELEASE</lambico.spring.version>
- <lambico.hibernate.version>3.6.7.Final</lambico.hibernate.version>
+ <lambico.hibernate.version>3.6.10.Final</lambico.hibernate.version>
<lambico.slf4j.version>1.7.2</lambico.slf4j.version>
<lambico.junit4.version>4.11</lambico.junit4.version>
<lambico.hsqldb.version>2.2.9</lambico.hsqldb.version>
==============================================================================
Revision: efe5f66c11f5
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Thu Mar 7 22:54:45 2013
Log: fixture load exception logged as error, not warning
http://code.google.com/p/lambico/source/detail?r=efe5f66c11f5
Modified:
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
=======================================
---
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
Wed Feb 27 08:43:09 2013
+++
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
Thu Mar 7 22:54:45 2013
@@ -131,7 +131,7 @@
logger.info("Loaded fixtures for models {}", map);
}
} catch (Exception e) {
- logger.warn("I can't load all fixture for {}", classes, e);
+ logger.error("I can't load all fixture for {}", classes, e);
}
}
==============================================================================
Revision: 8c920fd0ee35
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Fri Mar 8 08:54:08 2013
Log: FixtureSet is composable across class hierarchy
http://code.google.com/p/lambico/source/detail?r=8c920fd0ee35
Modified:
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesConfigurationAttributes.java
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
=======================================
---
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesConfigurationAttributes.java
Sun Feb 24 07:24:09 2013
+++
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesConfigurationAttributes.java
Fri Mar 8 08:54:08 2013
@@ -17,10 +17,13 @@
*/
package org.lambico.test.spring.hibernate.junit4;
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.lambico.test.spring.hibernate.junit4.FixtureSet.LoadMode;
+import org.springframework.core.annotation.AnnotationUtils;
/**
* Configuration attributes for configuring fixture enable tests.
@@ -29,10 +32,22 @@
*/
public class FixturesConfigurationAttributes {
+ private static final Class[] defaultModelClasses = (Class[])
AnnotationUtils.getDefaultValue(
+ FixtureSet.class, "modelClasses");
+ private static final String defaultRootFolder = (String)
AnnotationUtils.getDefaultValue(
+ FixtureSet.class, "rootFolder");
+ private static final LoadMode defaultloadMode = (LoadMode)
AnnotationUtils.getDefaultValue(
+ FixtureSet.class, "loadMode");
private Class[] modelClasses;
private String rootFolder;
private LoadMode loadMode;
+ public FixturesConfigurationAttributes() {
+ this.modelClasses = defaultModelClasses;
+ this.rootFolder = defaultRootFolder;
+ this.loadMode = defaultloadMode;
+ }
+
public FixturesConfigurationAttributes(Class[] modelClasses, String
rootFolder,
LoadMode loadMode) {
this.modelClasses = modelClasses;
@@ -85,4 +100,19 @@
CollectionUtils.addAll(result, modelClasses);
return result;
}
+
+ public void merge(Annotation annotation) {
+ Class[] models = (Class[])
AnnotationUtils.getValue(annotation, "modelClasses");
+ if (!Arrays.equals(defaultModelClasses, models)) {
+ this.modelClasses = models;
+ }
+ String folder = (String)
AnnotationUtils.getValue(annotation, "rootFolder");
+ if (!defaultRootFolder.equals(folder)) {
+ this.rootFolder = folder;
+ }
+ LoadMode mode = (LoadMode)
AnnotationUtils.getValue(annotation, "loadMode");
+ if (!defaultloadMode.equals(mode)) {
+ this.loadMode = mode;
+ }
+ }
}
=======================================
---
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
Thu Mar 7 22:54:45 2013
+++
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/FixturesTestExecutionListener.java
Fri Mar 8 08:54:08 2013
@@ -17,11 +17,13 @@
*/
package org.lambico.test.spring.hibernate.junit4;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang.ArrayUtils;
import org.lambico.dao.generic.GenericDaoBase;
import org.lambico.dao.spring.hibernate.GenericDaoHibernateSupport;
import org.lambico.data.YamlFixtureHelper;
@@ -30,7 +32,6 @@
import org.lambico.test.spring.hibernate.junit4.FixtureSet.LoadMode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.orm.hibernate3.HibernateTemplate;
@@ -90,7 +91,12 @@
GenericDaoBase dao = DaoUtils.getDaoFor(model,
testContext.getApplicationContext());
final HibernateTemplate template =
((GenericDaoHibernateSupport) dao).
getHibernateTemplate();
- for (Object entity : fixtures.get(model)) {
+ List<Object> data = fixtures.get(model);
+ if (data == null) {
+ logger.warn("No fixtures stored for {} model",
model.getSimpleName());
+ continue;
+ }
+ for (Object entity : data) {
if (LoadMode.CLASS.equals(loadMode)) {
// transaction will be rollbacked, but session cache
lives
((Entity) entity).setId(null);
@@ -145,26 +151,37 @@
*/
private FixturesConfigurationAttributes
retrieveConfigurationAttributes(TestContext testContext) {
if (this.configurationAttributes == null) {
- Class<?> clazz = testContext.getTestClass();
- Class<FixtureSet> annotationType = FixtureSet.class;
- FixtureSet config = clazz.getAnnotation(annotationType);
+ this.configurationAttributes = new
FixturesConfigurationAttributes();
- Class[] classes;
- String folder;
- LoadMode loadMode;
- if (config != null) {
- classes = config.modelClasses();
- folder = config.rootFolder();
- loadMode = config.loadMode();
- } else {
- classes = (Class[])
AnnotationUtils.getDefaultValue(annotationType, "modelClasses");
- folder = (String)
AnnotationUtils.getDefaultValue(annotationType, "rootFolder");
- loadMode = (LoadMode) AnnotationUtils.
- getDefaultValue(annotationType, "loadMode");
+ Class<?>[] classes =
getSuperClasses(testContext.getTestClass());
+ ArrayUtils.reverse(classes);
+ for (Class<?> c : classes) {
+ FixtureSet annotation = c.getAnnotation(FixtureSet.class);
+ if (annotation != null) {
+ configurationAttributes.merge(annotation);
+ }
}
- this.configurationAttributes =
- new FixturesConfigurationAttributes(classes, folder,
loadMode);
}
return this.configurationAttributes;
}
+
+ /**
+ * Gets all superclasses of the supplied {@link Class class},
including the class itself. The
+ * ordering of the returned list will begin with the supplied class
and continue up the class
+ * hierarchy.
+ * <p>Note: This code has been borrowed from
+ * {@link org.junit.internal.runners.TestClass#getSuperClasses(Class)}
and adapted.
+ *
+ * @param clazz the class for which to retrieve the superclasses.
+ * @return all superclasses of the supplied class.
+ */
+ private Class<?>[] getSuperClasses(Class<?> clazz) {
+ ArrayList<Class<?>> results = new ArrayList<Class<?>>();
+ Class<?> current = clazz;
+ while (current != null) {
+ results.add(current);
+ current = current.getSuperclass();
+ }
+ return results.toArray(new Class<?>[]{});
+ }
}
==============================================================================
Revision: dfa77d292d54
Branch: default
Author: Michele Franzin <
michele...@gmail.com>
Date: Fri Mar 8 08:54:32 2013
Log: snakeYAML update & minor cleanups
http://code.google.com/p/lambico/source/detail?r=dfa77d292d54
Modified:
/lambico-pump/pom.xml
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/AbstractBaseTest.java
=======================================
--- /lambico-pump/pom.xml Thu Feb 28 09:37:27 2013
+++ /lambico-pump/pom.xml Fri Mar 8 08:54:32 2013
@@ -59,7 +59,7 @@
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
- <version>1.11</version>
+ <version>1.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
=======================================
---
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/AbstractBaseTest.java
Sun Feb 24 07:24:09 2013
+++
/lambico-test/src/main/java/org/lambico/test/spring/hibernate/junit4/AbstractBaseTest.java
Fri Mar 8 08:54:32 2013
@@ -33,5 +33,4 @@
"/applicationContext-test.xml"})
@TestExecutionListeners(listeners = {FixturesTestExecutionListener.class})
public abstract class AbstractBaseTest extends
AbstractTransactionalJUnit4SpringContextTests {
-// TODO move to parancoe-test project
}
==============================================================================
Revision: 6aa17d9f697e
Branch: default
Author: lucio.benfante <
lucio.b...@gmail.com>
Date: Thu Mar 14 00:46:23 2013
Log: Merged Franzin's updates
http://code.google.com/p/lambico/source/detail?r=6aa17d9f697e
Modified:
/pom.xml
=======================================
--- /pom.xml Wed Mar 13 10:53:54 2013
+++ /pom.xml Thu Mar 14 00:46:23 2013
@@ -21,7 +21,7 @@
<main.basedir>${basedir}</main.basedir>
<year>2009</year>
<lambico.spring.version>3.0.7.RELEASE</lambico.spring.version>
- <lambico.hibernate.version>3.6.7.Final</lambico.hibernate.version>
+ <lambico.hibernate.version>3.6.10.Final</lambico.hibernate.version>
<lambico.slf4j.version>1.7.2</lambico.slf4j.version>
<lambico.junit4.version>4.11</lambico.junit4.version>
<lambico.hsqldb.version>2.2.9</lambico.hsqldb.version>