From: <ro...@us...> - 2009-03-02 15:09:51
|
Revision: 36 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=36&view=rev Author: roekens Date: 2009-03-02 15:09:47 +0000 (Mon, 02 Mar 2009) Log Message: ----------- added missing pieces Added Paths: ----------- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeDao.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/EntityDao.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/log4j.properties Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeDao.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeDao.java (rev 0) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeDao.java 2009-03-02 15:09:47 UTC (rev 36) @@ -0,0 +1,6 @@ +package de.campussource.cse.cdmm; +import de.campussource.cse.cdmm.DAOJPA; + +public class AttributeDao extends DAOJPA<Attribute> { + +} Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeDao.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/EntityDao.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/EntityDao.java (rev 0) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/EntityDao.java 2009-03-02 15:09:47 UTC (rev 36) @@ -0,0 +1,6 @@ +package de.campussource.cse.cdmm; +import de.campussource.cse.cdmm.DAOJPA; + +public class EntityDao extends DAOJPA<Entity> { + +} Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/EntityDao.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java (rev 0) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java 2009-03-02 15:09:47 UTC (rev 36) @@ -0,0 +1,114 @@ +package de.campussource.cse.cdmm; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.ejb.EJB; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import javax.persistence.PersistenceContext; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; + +public abstract class AbstractPersistentUnitTest { + + protected static EntityManagerFactory entityManagerFactory; + protected EntityManager entityManager; + + @BeforeClass + public static void retrieveEntityManagerFactory() { + entityManagerFactory = Persistence.createEntityManagerFactory("cseip"); + } + + @Before + public void retrieveEntityManager() { + entityManager = entityManagerFactory.createEntityManager(); + } + + @After + public void closeEntity() { + entityManager.close(); + } + + @AfterClass + public static void closeFactory() { + entityManagerFactory.close(); + } + + // FIXME Extract to Util class + private void injectField(Object object, Field field, Object reference) { + boolean accessible = field.isAccessible(); + field.setAccessible(true); + try { + field.set(object, reference); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + field.setAccessible(accessible); + } + + // FIXME Extract to Util class + private Map<String, Object> context = new HashMap<String, Object>(); + + // FIXME Extract to Util class + protected void autowireByType(Object object) { + Field[] fields = retrieveAllDeclaredFieldsIncludedInheritance(object); + for (Field field : fields) { + if (field.isAnnotationPresent(PersistenceContext.class)) { + injectField(object, field, entityManager); + } + if (field.isAnnotationPresent(EJB.class)) { + try { + Class fieldClass = field.getType(); + Object target = context.get(fieldClass.getName()); + if (target == null) { + target = fieldClass.newInstance(); + autowireByType(target); + context.put(fieldClass.getName(), target); + } + injectField(object, field, target); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } + + // FIXME Extract to Util class + private Field[] retrieveAllDeclaredFieldsIncludedInheritance(Object object) { + List<Field> fields = new ArrayList<Field>(); + Class clazz = object.getClass(); + while (clazz != null) { + fields.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + + return (Field[]) fields.toArray(new Field[fields.size()]); + } + + protected void txBegin() { + entityManager.getTransaction().begin(); + } + + protected void txCommit() { + entityManager.getTransaction().commit(); + } + + protected void commitAndBeginTx() { + txCommit(); + txBegin(); + } + +} Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml (rev 0) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml 2009-03-02 15:09:47 UTC (rev 36) @@ -0,0 +1,28 @@ +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" + version="1.0"> + <persistence-unit name="cseip" transaction-type="RESOURCE_LOCAL"> + <provider>oracle.toplink.essentials.PersistenceProvider</provider> + <class>de.campussource.cse.cdmm.Account</class> + <class>de.campussource.cse.cdmm.Attribute</class> + <class>de.campussource.cse.cdmm.Category</class> + <class>de.campussource.cse.cdmm.Course</class> + <class>de.campussource.cse.cdmm.Entity</class> + <class>de.campussource.cse.cdmm.Group</class> + <class>de.campussource.cse.cdmm.Role</class> + <properties> + <property name="toplink.ddl-generation" value="drop-and-create-tables" /> + <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver" /> +<!-- <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/cseip?profileSQL=true&createDatabaseIfNotExist=true" />--> + <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/cseip?createDatabaseIfNotExist=true" /> + <property name="toplink.jdbc.user" value="root" /> + <property name="toplink.jdbc.password" value="masterkey" /> + </properties> + </persistence-unit> +</persistence> + + + + + \ No newline at end of file Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/log4j.properties =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/log4j.properties (rev 0) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/log4j.properties 2009-03-02 15:09:47 UTC (rev 36) @@ -0,0 +1,15 @@ +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n + +log4j.rootCategory=debug, stdout + +log4j.logger.org.hibernate=info + +log4j.logger.oracle.toplink=debug + +log4j.logger.org.hibernate.SQL=debug +log4j.logger.org.hibernate.type=debug +log4j.logger.org.hibernate.id=debug +log4j.logger.org.hibernate.cache=debug \ No newline at end of file Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |