You can subscribe to this list here.
| 2009 |
Jan
|
Feb
(28) |
Mar
(85) |
Apr
(81) |
May
(32) |
Jun
(51) |
Jul
(134) |
Aug
(21) |
Sep
|
Oct
|
Nov
|
Dec
|
|---|
|
From: <id...@us...> - 2009-03-17 14:28:22
|
Revision: 87
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=87&view=rev
Author: idueppe
Date: 2009-03-17 14:28:11 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
update classpath
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.project
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath 2009-03-17 14:25:56 UTC (rev 86)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath 2009-03-17 14:28:11 UTC (rev 87)
@@ -1,35 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar">
- <attributes>
- <attribute name="javadoc_location" value="jar:file:/D:/development/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4-sources.jar">
- <attributes>
- <attribute name="javadoc_location" value="jar:file:/D:/development/repository/commons-lang/commons-lang/2.4/commons-lang-2.4-javadoc.jar!/"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/org/easymock/easymock/2.2/easymock-2.2.jar" sourcepath="M2_REPO/org/easymock/easymock/2.2/easymock-2.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar" sourcepath="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar" sourcepath="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar">
- <attributes>
- <attribute name="javadoc_location" value="jar:file:/D:/development/repository/junit/junit/4.4/junit-4.4-javadoc.jar!/"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/de/campussource/cse/test-utilities/1.0-SNAPSHOT/test-utilities-1.0-SNAPSHOT.jar" sourcepath="M2_REPO/de/campussource/cse/test-utilities/1.0-SNAPSHOT/test-utilities-1.0-SNAPSHOT-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e.jar" sourcepath="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e-sources.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/development/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/development/repository/commons-lang/commons-lang/2.4/commons-lang-2.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymock/2.2/easymock-2.2.jar" sourcepath="M2_REPO/org/easymock/easymock/2.2/easymock-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar" sourcepath="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar" sourcepath="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/development/repository/junit/junit/4.4/junit-4.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6-sources.jar"/>
+ <classpathentry kind="src" path="/test-utilities"/>
+ <classpathentry kind="var" path="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e.jar" sourcepath="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e-sources.jar"/>
+</classpath>
\ No newline at end of file
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.project
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.project 2009-03-17 14:25:56 UTC (rev 86)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.project 2009-03-17 14:28:11 UTC (rev 87)
@@ -1,7 +1,9 @@
<projectDescription>
<name>sc-cdmm</name>
<comment/>
- <projects/>
+ <projects>
+ <project>test-utilities</project>
+ </projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-17 14:26:51
|
Revision: 86
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=86&view=rev
Author: idueppe
Date: 2009-03-17 14:25:56 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
add toplink.version property
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/pom.xml
Modified: cse-ip/trunk/sandbox/cse-ip/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-17 14:25:23 UTC (rev 85)
+++ cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-17 14:25:56 UTC (rev 86)
@@ -192,6 +192,7 @@
<jaxb-impl.version>2.1.7</jaxb-impl.version>
<mysql.version>5.1.6</mysql.version>
<slf4j.version>1.5.6</slf4j.version>
+ <toplink.version>2.1-60f</toplink.version>
</properties>
</project>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-17 14:25:32
|
Revision: 85
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=85&view=rev
Author: idueppe
Date: 2009-03-17 14:25:23 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
Add toplink.version property.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
Modified: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-17 14:24:08 UTC (rev 84)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-17 14:25:23 UTC (rev 85)
@@ -73,7 +73,7 @@
<dependency>
<groupId>toplink.essentials</groupId>
<artifactId>toplink-essentials</artifactId>
- <version>2.1-60e</version>
+ <version>${toplink.version}</version>
<scope>test</scope>
</dependency>
<dependency>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 84
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=84&view=rev
Author: idueppe
Date: 2009-03-17 14:24:08 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
fixed NullPointerException if an EntityManager couldn't be created.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-17 14:23:01 UTC (rev 83)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-17 14:24:08 UTC (rev 84)
@@ -33,11 +33,13 @@
*/
@After
public void closeEntity() {
- EntityTransaction tx = entityManager.getTransaction();
- if (tx.isActive()) {
- tx.rollback();
+ if (entityManager != null) {
+ EntityTransaction tx = entityManager.getTransaction();
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ entityManager.close();
}
- entityManager.close();
}
@AfterClass
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-17 14:24:49
|
Revision: 83
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=83&view=rev
Author: idueppe
Date: 2009-03-17 14:23:01 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
some updates
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/documentation/cse-ip-model.mdzip
Added: cse-ip/trunk/sandbox/cse-ip/documentation/cse-ip-model.mdzip
===================================================================
(Binary files differ)
Property changes on: cse-ip/trunk/sandbox/cse-ip/documentation/cse-ip-model.mdzip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-17 13:52:02
|
Revision: 82
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=82&view=rev
Author: roekens
Date: 2009-03-17 13:51:54 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
- several xml specific bugfixes
- introduction of possible (currently not working) realisation of attributes
- introduction of dmm service bean
- new tests
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeAdapter.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeAdapter.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeAdapter.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeAdapter.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -0,0 +1,27 @@
+package de.campussource.cse.cdmm;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+import de.campussource.cse.cdmm.domain.Attribute;
+import de.campussource.cse.cdmm.domain.PersistentAttribute;
+import de.campussource.cse.cdmm.domain.TransientAttribute;
+
+public class AttributeAdapter extends XmlAdapter<Attribute, Attribute>{
+
+
+
+ @Override
+ public Attribute unmarshal(Attribute v) throws Exception {
+ if (!v.isPersistent()){
+ return new TransientAttribute(v.getName(), v.getValue());
+ }
+ return new PersistentAttribute(v.getName(), v.getValue());
+ }
+
+ @Override
+ public Attribute marshal(Attribute v) throws Exception {
+ return v;
+ }
+
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/AttributeAdapter.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -0,0 +1,5 @@
+package de.campussource.cse.cdmm;
+
+public abstract class CSEMessage{
+
+}
\ No newline at end of file
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -62,6 +62,10 @@
public static final String COLUMNNAME_ACCOUNT_ID = "ACCOUNT_ID";
public static final String COLUMNNAME_CATEGORY_ID = "CATEGORY_ID";
public static final String COLUMNNAME_COURSE_ID = "COURSE_ID";
+ public static final String COLUMNNAME_NAME = "NAME";
+ public static final String COLUMNNAME_VALUE = "VALUE";
+ public static final String COLUMNNAME_ENTITY_ID = "ENTITY_ID";
+
public static final String ID = "id";
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -2,7 +2,60 @@
import javax.ejb.Remote;
+import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Category;
+import de.campussource.cse.cdmm.domain.Course;
+import de.campussource.cse.cdmm.domain.Group;
+import de.campussource.cse.cdmm.domain.Role;
+
@Remote
public interface DataModelManager {
+ public CSEMessage saveCategory(Category category);
+
+ public CSEMessage saveCategoryHierarchy(Category category);
+
+ public CSEMessage deleteCategory(Category category);
+
+ public CSEMessage retrieveCategoryHierarchy(long categoryId);
+
+ public CSEMessage retrieveCategory(long categoryId);
+
+
+
+ public CSEMessage saveCourse(Course course);
+
+ public CSEMessage saveCourseHierarchy(Course course);
+
+ public CSEMessage deleteCourse(Course course);
+
+ public CSEMessage retrieveCourse(long courseId);
+ public CSEMessage retrieveCourseHierarchy(long courseId);
+
+
+
+ public CSEMessage saveRole(Role role);
+
+ public CSEMessage deleteRole(Role role);
+
+ public CSEMessage retrieveRole(long roleId);
+
+ public CSEMessage retrieveRole(long accountId, long courseId);
+
+
+
+ public CSEMessage saveAccount(Account account);
+
+ public CSEMessage deleteAccount(Account account);
+
+ public CSEMessage retrieveAccount(long accountId);
+
+
+ public CSEMessage retrieveGroup(long groupId);
+
+ public CSEMessage saveGroup(Group group);
+
+ public CSEMessage deleteGroup(Group group);
+
+
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -4,6 +4,11 @@
import javax.ejb.Stateless;
import de.campussource.cse.cdmm.dao.*;
+import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Category;
+import de.campussource.cse.cdmm.domain.Course;
+import de.campussource.cse.cdmm.domain.Group;
+import de.campussource.cse.cdmm.domain.Role;
@Stateless
public class DataModelManagerBean implements DataModelManager {
@@ -25,5 +30,128 @@
@EJB
private RoleDao roleDao;
+
+ @Override
+ public CSEMessage deleteAccount(Account account) {
+ accountDao.remove(account);
+ return null;
+ }
+
+ @Override
+ public CSEMessage deleteCategory(Category category) {
+ categoryDao.remove(category);
+ return null;
+ }
+
+ @Override
+ public CSEMessage deleteCourse(Course course) {
+ courseDao.remove(course);
+ return null;
+ }
+
+ @Override
+ public CSEMessage deleteGroup(Group group) {
+ groupDao.remove(group);
+ return null;
+ }
+
+ @Override
+ public CSEMessage deleteRole(Role role) {
+ roleDao.remove(role);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveAccount(long accountId) {
+ Account account = accountDao.find(accountId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveCategory(long categoryId) {
+ Category category = categoryDao.find(categoryId);
+ //TODO cut subcategories or define new method in dao
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveCategoryHierarchy(long categoryId) {
+ Category category = categoryDao.find(categoryId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveCourse(long courseId) {
+ //TODO cut workgroups or define new method in dao
+ Course course = courseDao.find(courseId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveCourseHierarchy(long courseId) {
+ Course course = courseDao.find(courseId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveGroup(long groupId) {
+ Group group = groupDao.find(groupId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveRole(long roleId) {
+ Role role = roleDao.find(roleId);
+ return null;
+ }
+
+ @Override
+ public CSEMessage retrieveRole(long accountId, long courseId) {
+ //TODO define new dao method
+ //Role role = roleDao.
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveAccount(Account account) {
+ accountDao.persist(account);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveCategory(Category category) {
+ categoryDao.persist(category);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveCategoryHierarchy(Category category) {
+ categoryDao.persist(category);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveCourse(Course course) {
+ courseDao.persist(course);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveCourseHierarchy(Course course) {
+ courseDao.persist(course);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveGroup(Group group) {
+ groupDao.persist(group);
+ return null;
+ }
+
+ @Override
+ public CSEMessage saveRole(Role role) {
+ roleDao.persist(role);
+ return null;
+ }
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -1,20 +1,27 @@
package de.campussource.cse.cdmm.domain;
+import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import de.campussource.cse.cdmm.AttributeAdapter;
import de.campussource.cse.cdmm.Constants;
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
+@XmlJavaTypeAdapter(value=AttributeAdapter.class)
public class Attribute {
+ @Transient
private String name;
+ @Transient
private String value;
+
private boolean persistent;
public Attribute(){
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -84,7 +84,8 @@
}
@XmlElementWrapper(name=Constants.ATTRIBUTES)
- @XmlElements(value={@XmlElement(name=Constants.ATTRIBUTE,type=Attribute.class), @XmlElement(name=Constants.ATTRIBUTE,type=TransientAttribute.class), @XmlElement(name=Constants.ATTRIBUTE, type=PersistentAttribute.class)})
+ //@XmlElements(value={@XmlElement(name=Constants.ATTRIBUTE,type=Attribute.class), @XmlElement(name=Constants.ATTRIBUTE,type=TransientAttribute.class), @XmlElement(name=Constants.ATTRIBUTE, type=PersistentAttribute.class)})
+ @XmlElement(name=Constants.ATTRIBUTE)
public List<Attribute> getAttributes() {
return attributes;
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -23,14 +23,7 @@
private List<Account> accounts;
- public void setCourses(List<Course> courses) {
- this.courses = courses;
- }
- public void setAccounts(List<Account> accounts) {
- this.accounts = accounts;
- }
-
@XmlElement(name=Constants.CATEGORY)
public Category getRootCategory() {
return rootCategory;
@@ -49,6 +42,14 @@
return accounts;
}
+ public void setCourses(List<Course> courses) {
+ this.courses = courses;
+ }
+
+ public void setAccounts(List<Account> accounts) {
+ this.accounts = accounts;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE).append(rootCategory).append(courses.toArray()).append(accounts.toArray()).toString();
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -1,14 +1,54 @@
package de.campussource.cse.cdmm.domain;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import javax.persistence.Column;
+import javax.persistence.ManyToOne;
+import javax.xml.bind.annotation.XmlTransient;
import de.campussource.cse.cdmm.Constants;
-@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
+@XmlTransient
public class PersistentAttribute extends Attribute {
+
+ @Column(name=Constants.COLUMNNAME_NAME, nullable=false, insertable=true, updatable=true)
+ private String name;
+
+ @Column(name=Constants.COLUMNNAME_VALUE, nullable=false, insertable=true, updatable=true)
+ private String value;
+
+ @ManyToOne(optional=false)
+ @Column(name=Constants.COLUMNNAME_ENTITY_ID, nullable=false, insertable=true, updatable=true)
+ public Entity entity;
+
+ public Entity getEntity() {
+ return entity;
+ }
+
+ public void setEntity(Entity entity) {
+ this.entity = entity;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+
public PersistentAttribute(){}
public PersistentAttribute(String name, String value){
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -1,12 +1,8 @@
package de.campussource.cse.cdmm.domain;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlTransient;
-import de.campussource.cse.cdmm.Constants;
-
-@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
+@XmlTransient
public class TransientAttribute extends Attribute {
public TransientAttribute(){}
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -0,0 +1,28 @@
+package de.campussource.cse.cdmm;
+
+
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.domain.Category;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
+
+public class DataModelManagerBeanTest extends AbstractPersistentUnitTest {
+
+ private DataModelManagerBean dmm;
+
+ @Before
+ public void setUp() {
+ dmm = new DataModelManagerBean();
+ autowireByType(dmm);
+ txBegin();
+ }
+
+ @Test
+ public void testSaveCategory(){
+ Category category = new Category(uniqueId());
+ dmm.saveCategory(category);
+ }
+
+}
\ No newline at end of file
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-17 11:48:42 UTC (rev 81)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-17 13:51:54 UTC (rev 82)
@@ -423,12 +423,9 @@
System.out.println("----- entering Attribute XML Test -----");
//create category object with two attributes
Category category = new Category(createUniqueId());
- TransientAttribute att1 = new TransientAttribute();
- att1.setName("TNAME");
- att1.setValue("TVALUE");
- PersistentAttribute att2 = new PersistentAttribute();
- att2.setName("PNAME");
- att2.setValue("PVALUE");
+ TransientAttribute att1 = new TransientAttribute("TNAME", "TVALUE");
+ PersistentAttribute att2 = new PersistentAttribute("PNAME", "PVALUE");
+ att2.setEntity(category);
List<Attribute> attributes = new ArrayList<Attribute>();
attributes.add(att1);
attributes.add(att2);
@@ -438,7 +435,7 @@
Marshaller marshaller=null;
JAXBContext context=null;
try {
- context = JAXBContext.newInstance(Category.class);
+ context = JAXBContext.newInstance(Category.class, Attribute.class, PersistentAttribute.class, TransientAttribute.class);
marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
} catch (JAXBException e) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 81
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=81&view=rev
Author: idueppe
Date: 2009-03-17 11:48:42 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
fixed NullPointerException while closing EntityManagerFactory if something is wrong with the persistence unit.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-10 16:21:51 UTC (rev 80)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-17 11:48:42 UTC (rev 81)
@@ -42,7 +42,9 @@
@AfterClass
public static void closeFactory() {
- entityManagerFactory.close();
+ if (entityManagerFactory != null) {
+ entityManagerFactory.close();
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-10 16:22:04
|
Revision: 80
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=80&view=rev
Author: idueppe
Date: 2009-03-10 16:21:51 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
Fixed issues...
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 15:16:35 UTC (rev 79)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 16:21:51 UTC (rev 80)
@@ -109,42 +109,46 @@
*/
@Test
public void testCascadingOnDeleteCourse(){
- //FIXME test fails, no idea why...
-// dao.persist(role);
-// assertNotNull(role.getId());
-// assertNotNull(course.getId());
-// assertNotNull(account.getId());
-// assertNotNull(account.getRoles());
-// assertNotNull(course.getRoles());
-// assertEquals(course.getRoles().get(0), role);
-// assertEquals(account.getRoles().get(0), role);
-// assertEquals(role.getCourse(), course);
-// assertEquals(role.getAccount(), account);
-// CourseDao courseDao = new CourseDao();
-// autowireByType(courseDao);
-// courseDao.remove(course);
-// assertNull(courseDao.find(course.getId()));
-// assertNull(dao.find(role.getId()));
+ dao.persist(role);
+ assertNotNull(role.getId());
+ assertNotNull(course.getId());
+ assertNotNull(account.getId());
+ assertNotNull(account.getRoles());
+ assertNotNull(course.getRoles());
+ assertEquals(course.getRoles().get(0), role);
+ assertEquals(account.getRoles().get(0), role);
+ assertEquals(role.getCourse(), course);
+ assertEquals(role.getAccount(), account);
+
+ commitAndBeginTx();
+
+ CourseDao courseDao = new CourseDao();
+ autowireByType(courseDao);
+ courseDao.remove(course);
+ assertNull(courseDao.find(course.getId()));
+ assertNull(dao.find(role.getId()));
}
@Test
public void testCascadingOnDeleteAccount(){
- //FIXME test fails, no idea why...
-// dao.persist(role);
-// assertNotNull(role.getId());
-// assertNotNull(course.getId());
-// assertNotNull(account.getId());
-// assertNotNull(account.getRoles());
-// assertNotNull(course.getRoles());
-// assertEquals(course.getRoles().get(0), role);
-// assertEquals(account.getRoles().get(0), role);
-// assertEquals(role.getCourse(), course);
-// assertEquals(role.getAccount(), account);
-// AccountDao accountDao = new AccountDao();
-// autowireByType(accountDao);
-// accountDao.remove(account);
-// assertNull(accountDao.find(account.getId()));
-// assertNull(dao.find(role.getId()));
+ dao.persist(role);
+ assertNotNull(role.getId());
+ assertNotNull(course.getId());
+ assertNotNull(account.getId());
+ assertNotNull(account.getRoles());
+ assertNotNull(course.getRoles());
+ assertEquals(course.getRoles().get(0), role);
+ assertEquals(account.getRoles().get(0), role);
+ assertEquals(role.getCourse(), course);
+ assertEquals(role.getAccount(), account);
+
+ commitAndBeginTx();
+
+ AccountDao accountDao = new AccountDao();
+ autowireByType(accountDao);
+ accountDao.remove(account);
+ assertNull(accountDao.find(account.getId()));
+ assertNull(dao.find(role.getId()));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-10 15:17:08
|
Revision: 79
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=79&view=rev
Author: idueppe
Date: 2009-03-10 15:16:35 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
ignore .classpath etc.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath
Property Changed:
----------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm
___________________________________________________________________
Added: svn:ignore
+ createDDL.jdbc
dropDDL.jdbc
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath 2009-03-10 14:55:10 UTC (rev 78)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/.classpath 2009-03-10 15:16:35 UTC (rev 79)
@@ -1,26 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar">
- <attributes>
- <attribute value="jar:file:/C:/development/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" name="javadoc_location"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4-sources.jar">
- <attributes>
- <attribute value="jar:file:/C:/development/repository/commons-lang/commons-lang/2.4/commons-lang-2.4-javadoc.jar!/" name="javadoc_location"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar" sourcepath="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e.jar" sourcepath="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e-sources.jar"/>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="jar:file:/D:/development/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4-sources.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="jar:file:/D:/development/repository/commons-lang/commons-lang/2.4/commons-lang-2.4-javadoc.jar!/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymock/2.2/easymock-2.2.jar" sourcepath="M2_REPO/org/easymock/easymock/2.2/easymock-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar" sourcepath="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar" sourcepath="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="jar:file:/D:/development/repository/junit/junit/4.4/junit-4.4-javadoc.jar!/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/de/campussource/cse/test-utilities/1.0-SNAPSHOT/test-utilities-1.0-SNAPSHOT.jar" sourcepath="M2_REPO/de/campussource/cse/test-utilities/1.0-SNAPSHOT/test-utilities-1.0-SNAPSHOT-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e.jar" sourcepath="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e-sources.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 14:55:12
|
Revision: 78
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=78&view=rev
Author: roekens
Date: 2009-03-10 14:55:10 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- several bugfixes of jpa annotations
- more tests
cascaded delete from course or account to role does not work!
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/CourseDao.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/CourseDao.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/CourseDao.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/CourseDao.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -3,5 +3,5 @@
import de.campussource.cse.cdmm.domain.Course;
public class CourseDao extends DAOJPA<Course> {
-
+
}
\ No newline at end of file
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -1,7 +1,20 @@
package de.campussource.cse.cdmm.dao;
+import java.util.List;
+
import de.campussource.cse.cdmm.dao.DAOJPA;
import de.campussource.cse.cdmm.domain.Role;
public class RoleDao extends DAOJPA<Role> {
-
+
+ @Override
+ public void remove(Role role){
+ List<Role> accountRoles = role.getAccount().getRoles();
+ List<Role> courseRoles = role.getCourse().getRoles();
+ accountRoles.remove(role);
+ courseRoles.remove(role);
+ role.getAccount().setRoles(accountRoles);
+ role.getCourse().setRoles(courseRoles);
+ persist(role);
+ super.remove(role);
+ }
}
\ No newline at end of file
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.List;
+import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@@ -26,7 +27,7 @@
@XmlType(propOrder={Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Account extends de.campussource.cse.cdmm.domain.Entity{
- @OneToMany(mappedBy=Constants.ACCOUNT)
+ @OneToMany(mappedBy=Constants.ACCOUNT, cascade=CascadeType.REMOVE)
private List<Role> roles;
@ManyToMany
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -45,7 +45,7 @@
inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_COURSE_ID)})
private List<Category> categories;
- @OneToMany(mappedBy=Constants.COURSE, cascade = CascadeType.REMOVE)
+ @OneToMany(mappedBy=Constants.COURSE, cascade = {CascadeType.REMOVE})
private List<Role> roles;
public Course(){
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -2,6 +2,7 @@
import java.util.List;
+import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@@ -25,7 +26,7 @@
@XmlType(propOrder={Constants.MEMBERS}, namespace=Constants.NAMESPACE_DATATYPES)
public class Group extends Account{
- @ManyToMany(mappedBy=Constants.GROUPS)
+ @ManyToMany(mappedBy=Constants.GROUPS, cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
private List<Account> members;
public Group(){
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -1,5 +1,9 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
@@ -28,11 +32,11 @@
@Enumerated(EnumType.ORDINAL)
private RoleType type;
- @ManyToOne(optional=false)
+ @ManyToOne(optional=false, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinColumn(name=Constants.COLUMNNAME_ACCOUNT_ID, nullable=false)
private Account account;
- @ManyToOne(optional=false)
+ @ManyToOne(optional=false, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinColumn(name=Constants.COLUMNNAME_COURSE_ID, nullable=false)
private Course course;
@@ -46,6 +50,35 @@
this.course = course;
}
+ /**
+ * Convenience method to add role to a course and an account.
+ * Role is added to roles list of course and account object, and
+ * course and account are added to role object
+ * @param course target course role is associated to
+ * @param account target account role is associated to
+ * @return success of operation
+ */
+ public boolean addToCourseAndAccount(Course course, Account account){
+ if ((course==null)||(account==null)){
+ return false;
+ }
+ List<Role> courseRoles = course.getRoles();
+ if (courseRoles==null){
+ courseRoles = new ArrayList<Role>();
+ }
+ List<Role> accountRoles = account.getRoles();
+ if (accountRoles==null){
+ accountRoles = new ArrayList<Role>();
+ }
+ this.setAccount(account);
+ this.setCourse(course);
+ accountRoles.add(this);
+ courseRoles.add(this);
+ account.setRoles(accountRoles);
+ course.setRoles(courseRoles);
+ return true;
+ }
+
public Role(Long id, RoleType type){
setId(id);
this.type = type;
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 13:55:45 UTC (rev 77)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 14:55:10 UTC (rev 78)
@@ -4,6 +4,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -20,67 +21,137 @@
private RoleDao dao;
private Role role;
- private CourseDao courseDao;
private Course course;
- private AccountDao accountDao;
private Account account;
@Before
public void setUp() {
//set up daos
dao = new RoleDao();
- courseDao = new CourseDao();
- accountDao = new AccountDao();
autowireByType(dao);
- autowireByType(courseDao);
- autowireByType(accountDao);
//create role object with needed dependencies
course = new Course();
account = new Account();
- courseDao.persist(course);
- accountDao.persist(account);
role = newRole();
txBegin();
}
+
+ @After
+ public void tearDown(){
+ txCommit();
+ }
+ /**
+ * Tests if Role can be persisted
+ */
@Test
public void testPersistRole() {
dao.persist(role);
assertNotNull(role.getId());
- txCommit();
}
+ /**
+ * Tests if role can be found by id
+ */
@Test
public void testFindRole() {
dao.persist(role);
assertNotNull(role.getId());
- commitAndBeginTx();
Role roid = dao.find(role.getId());
assertEquals(role, roid);
}
+ /**
+ * Tests if Role can be deleted
+ */
@Test
public void testRemoveRole() {
dao.persist(role);
assertNotNull(role.getId());
- commitAndBeginTx();
dao.remove(role);
- commitAndBeginTx();
assertNull(dao.find(role.getId()));
+ CourseDao courseDao = new CourseDao();
+ autowireByType(courseDao);
+ assertNotNull(courseDao.find(course.getId()));
}
+ /**
+ * Tests if search for not existing id returns null
+ */
@Test
public void testDoNotFindById() {
Role foundRole= dao.find(0L);
assertNull(foundRole);
}
+ /**
+ * Tests if create and update statements are correctly cascaded
+ * to account and course entities
+ */
+ @Test
+ public void testCascadingOnCreate(){
+ dao.persist(role);
+ assertNotNull(role.getId());
+ assertNotNull(course.getId());
+ assertNotNull(account.getId());
+ assertNotNull(account.getRoles());
+ assertNotNull(course.getRoles());
+ assertEquals(course.getRoles().get(0), role);
+ assertEquals(account.getRoles().get(0), role);
+ assertEquals(role.getCourse(), course);
+ assertEquals(role.getAccount(), account);
+ }
+
+ /**
+ * Tests if role objects are deleted on deletion of parent course object
+ */
+ @Test
+ public void testCascadingOnDeleteCourse(){
+ //FIXME test fails, no idea why...
+// dao.persist(role);
+// assertNotNull(role.getId());
+// assertNotNull(course.getId());
+// assertNotNull(account.getId());
+// assertNotNull(account.getRoles());
+// assertNotNull(course.getRoles());
+// assertEquals(course.getRoles().get(0), role);
+// assertEquals(account.getRoles().get(0), role);
+// assertEquals(role.getCourse(), course);
+// assertEquals(role.getAccount(), account);
+// CourseDao courseDao = new CourseDao();
+// autowireByType(courseDao);
+// courseDao.remove(course);
+// assertNull(courseDao.find(course.getId()));
+// assertNull(dao.find(role.getId()));
+ }
+
+ @Test
+ public void testCascadingOnDeleteAccount(){
+ //FIXME test fails, no idea why...
+// dao.persist(role);
+// assertNotNull(role.getId());
+// assertNotNull(course.getId());
+// assertNotNull(account.getId());
+// assertNotNull(account.getRoles());
+// assertNotNull(course.getRoles());
+// assertEquals(course.getRoles().get(0), role);
+// assertEquals(account.getRoles().get(0), role);
+// assertEquals(role.getCourse(), course);
+// assertEquals(role.getAccount(), account);
+// AccountDao accountDao = new AccountDao();
+// autowireByType(accountDao);
+// accountDao.remove(account);
+// assertNull(accountDao.find(account.getId()));
+// assertNull(dao.find(role.getId()));
+ }
+
+
+
private Role newRole() {
Role role = new Role();
- role.setAccount(account);
- role.setCourse(course);
+ role.addToCourseAndAccount(course, account);
role.setType(RoleType.ASSISTANT);
return role;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 13:55:57
|
Revision: 77
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=77&view=rev
Author: roekens
Date: 2009-03-10 13:55:45 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
bugfixed tx structure of testcases
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 13:53:50 UTC (rev 76)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 13:55:45 UTC (rev 77)
@@ -6,6 +6,7 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -31,6 +32,11 @@
autowireByType(dao);
txBegin();
}
+
+ @After
+ public void tearDown(){
+ txCommit();
+ }
/**
* Checks if category can be persisted
@@ -39,7 +45,6 @@
public void testPersistCategory() {
dao.persist(category);
assertNotNull(category.getId());
- txCommit();
}
@@ -50,7 +55,6 @@
public void testFindCategory() {
dao.persist(category);
assertNotNull(category.getId());
- commitAndBeginTx();
Category coid = dao.find(category.getId());
assertEquals(category, coid);
}
@@ -62,9 +66,7 @@
public void testRemoveCategory() {
dao.persist(category);
assertNotNull(category.getId());
- commitAndBeginTx();
dao.remove(category);
- commitAndBeginTx();
assertNull(dao.find(category.getId()));
}
@@ -75,7 +77,6 @@
public void testCascading(){
category.addToParentCategory(parentCategory);
dao.persist(category);
- txCommit();
assertNotNull(category.getId());
assertNotNull(parentCategory.getId());
assertEquals(category.getParent(), parentCategory);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 13:53:55
|
Revision: 76
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=76&view=rev
Author: roekens
Date: 2009-03-10 13:53:50 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- introduced convenience method for course hierarchy handling
- added test for cascading and hierarchy handling
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:41:25 UTC (rev 75)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:53:50 UTC (rev 76)
@@ -99,6 +99,25 @@
}
}
+ /**
+ * Convenience method to add this course as a workgroup to course
+ * @param course parent course
+ * @return success of operation
+ */
+ public boolean addAsWorkgroupTo(Course course){
+ if (course==null||(course.getParent()!=null)){
+ return false;
+ }
+ List<Course> workgroups = course.getWorkgroups();
+ if (workgroups == null){
+ workgroups = new ArrayList<Course>();
+ }
+ workgroups.add(this);
+ course.setWorkgroups(workgroups);
+ this.setParent(course);
+ return true;
+ }
+
public String toString() {
return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE).toString();
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 13:41:25 UTC (rev 75)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 13:53:50 UTC (rev 76)
@@ -3,6 +3,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertFalse;
import org.junit.After;
import org.junit.Before;
@@ -101,9 +102,23 @@
*/
@Test
public void testWorkgroupCascading(){
+ //check correct cascading on creation of workgroup
Course workgroup1 = new Course();
-
-
+ Course workgroup2 = new Course();
+ workgroup1.addAsWorkgroupTo(course);
+ dao.persist(workgroup1);
+ assertNotNull(workgroup1.getId());
+ assertNotNull(course.getId());
+ assertNotNull(workgroup1.getParent());
+ assertEquals(workgroup1.getParent(), course);
+ assertNotNull(course.getWorkgroups());
+ assertEquals(course.getWorkgroups().get(0), workgroup1);
+ //check if circular dependency is prevented
+ assertFalse(workgroup2.addAsWorkgroupTo(workgroup1));
+ //check correct deleting cascading
+ dao.remove(course);
+ assertNull(dao.find(course.getId()));
+ assertNull(dao.find(workgroup1.getId()));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 13:43:24
|
Revision: 75
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=75&view=rev
Author: roekens
Date: 2009-03-10 13:41:25 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
bugfixes and new tests for courseDao
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -1,5 +1,6 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
@@ -62,6 +63,42 @@
this.workgroups = workgroups;
}
+ /**
+ * Convenience method to add this course to a category.
+ * Updates category list of course object and course list of category object.
+ * @param category the category this course should be added to
+ * @return Success of operation
+ */
+ public boolean addToCategory(Category category){
+ if (category == null){
+ return false;
+ }
+ List<Course> courses = category.getCourses();
+ if (courses==null){
+ courses = new ArrayList<Course>();
+ }
+ List<Category> categories = this.getCategories();
+ if (categories == null){
+ categories = new ArrayList<Category>();
+ }
+ categories.add(category);
+ this.setCategories(categories);
+ courses.add(this);
+ category.setCourses(courses);
+ return true;
+ }
+
+ /**
+ * Convenience method for adding course to a number of categories
+ *
+ * @param categories List of categories course is to add to
+ */
+ public void addToCagetories(List<Category> categories){
+ for (Category category : categories){
+ addToCategory(category);
+ }
+ }
+
public String toString() {
return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE).toString();
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -9,6 +9,7 @@
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
+import javax.persistence.Table;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
@@ -25,13 +26,14 @@
import de.campussource.cse.cdmm.IdAdapter;
@javax.persistence.Entity(name=Constants.ENTITY)
+@Table(name = Constants.TABLENAME_ENTITY)
@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.ID, Constants.PROPERTY_ATTRIBUTES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Entity{
@Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE)
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Transient
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -57,6 +57,6 @@
}
private Account newAccount() {
- return new Account(uniqueId());
+ return new Account();
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -106,7 +106,7 @@
private Category newCategory() {
- return new Category(uniqueId());
+ return new Category();
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -4,10 +4,13 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import de.campussource.cse.cdmm.dao.CategoryDao;
import de.campussource.cse.cdmm.dao.CourseDao;
+import de.campussource.cse.cdmm.domain.Category;
import de.campussource.cse.cdmm.domain.Course;
import de.campussource.cse.common.test.AbstractPersistentUnitTest;
@@ -26,6 +29,11 @@
autowireByType(dao);
txBegin();
}
+
+ @After
+ public void tearDown(){
+ txCommit();
+ }
/**
* Tests creating of a course object
@@ -34,7 +42,6 @@
public void testPersistCourse() {
dao.persist(course);
assertNotNull(course.getId());
- txCommit();
}
@@ -57,9 +64,7 @@
public void testRemoveCourse() {
dao.persist(course);
assertNotNull(course.getId());
- commitAndBeginTx();
dao.remove(course);
- commitAndBeginTx();
assertNull(dao.find(course.getId()));
}
@@ -73,11 +78,41 @@
}
/**
+ * Tests cascading to category objects.
+ */
+ @Test
+ public void testCascadingToCategory(){
+ Category category = new Category();
+ CategoryDao categoryDao = new CategoryDao();
+ autowireByType(categoryDao);
+ categoryDao.persist(category);
+ assertNotNull(category.getId());
+ course.addToCategory(category);
+ dao.persist(course);
+ assertNotNull(course.getId());
+ assertNotNull(course.getCategories());
+ assertNotNull(category.getCourses());
+ assertEquals(course.getCategories().get(0), category);
+ assertEquals(category.getCourses().get(0), course);
+ }
+
+ /**
+ * Tests cascading in course hierarchy and correct course hierarchy
+ */
+ @Test
+ public void testWorkgroupCascading(){
+ Course workgroup1 = new Course();
+
+
+ }
+
+
+ /**
* Convenience method for creating a course object with a unique id
* @return course object with unique id
*/
private Course newCourse() {
- return new Course(uniqueId());
+ return new Course();
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 13:41:25 UTC (rev 75)
@@ -36,8 +36,8 @@
autowireByType(courseDao);
autowireByType(accountDao);
//create role object with needed dependencies
- course = new Course(uniqueId());
- account = new Account(uniqueId());
+ course = new Course();
+ account = new Account();
courseDao.persist(course);
accountDao.persist(account);
role = newRole();
@@ -78,7 +78,7 @@
}
private Role newRole() {
- Role role = new Role(uniqueId());
+ Role role = new Role();
role.setAccount(account);
role.setCourse(course);
role.setType(RoleType.ASSISTANT);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-10 11:45:56
|
Revision: 74
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=74&view=rev
Author: idueppe
Date: 2009-03-10 11:45:48 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
refactoring of unit tests. Now using test-utitltiy module
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/pom.xml
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/ClientObjectDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/IdMapperBeanTest.java
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitConfigurationTest.java
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/IdentityMapperTest.java
Removed Paths:
-------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml 2009-03-10 11:45:48 UTC (rev 74)
@@ -18,7 +18,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <scope>test</scope>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
Modified: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -16,6 +16,7 @@
protected static EntityManagerFactory entityManagerFactory;
protected EntityManager entityManager;
private AnnotationInjector injector;
+ private static long currentTimeMillis = System.currentTimeMillis();
@BeforeClass
public static void retrieveEntityManagerFactory() {
@@ -80,5 +81,14 @@
txCommit();
txBegin();
}
+
+ /**
+ * Convenience method for creating a unique id
+ * @return unique id
+ */
+ protected Long uniqueId() {
+ return currentTimeMillis++;
+ }
+
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/pom.xml 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/pom.xml 2009-03-10 11:45:48 UTC (rev 74)
@@ -16,6 +16,12 @@
<dependencies>
<dependency>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>test-utilities</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
Deleted: 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 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -1,123 +0,0 @@
-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;
- static Long currentTimeMillis = System.currentTimeMillis();
- 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();
- }
-
- /**
- * Convenience method for creating a unique id
- * @return unique id
- */
- protected Long createUniqueId() {
- return currentTimeMillis++;
- }
-
-}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -9,6 +9,7 @@
import de.campussource.cse.cdmm.dao.AccountDao;
import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class AccountDaoTest extends AbstractPersistentUnitTest {
private AccountDao dao;
@@ -56,6 +57,6 @@
}
private Account newAccount() {
- return new Account(createUniqueId());
+ return new Account(uniqueId());
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -1,16 +1,17 @@
package de.campussource.cse.cdmm;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
import de.campussource.cse.cdmm.dao.CategoryDao;
import de.campussource.cse.cdmm.domain.Category;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class CategoryDaoTest extends AbstractPersistentUnitTest{
@@ -105,7 +106,7 @@
private Category newCategory() {
- return new Category(createUniqueId());
+ return new Category(uniqueId());
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -9,6 +9,7 @@
import de.campussource.cse.cdmm.dao.CourseDao;
import de.campussource.cse.cdmm.domain.Course;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class CourseDaoTest extends AbstractPersistentUnitTest {
@@ -76,7 +77,7 @@
* @return course object with unique id
*/
private Course newCourse() {
- return new Course(createUniqueId());
+ return new Course(uniqueId());
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -14,6 +14,7 @@
import de.campussource.cse.cdmm.domain.Course;
import de.campussource.cse.cdmm.domain.Role;
import de.campussource.cse.cdmm.domain.RoleType;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class RoleDaoTest extends AbstractPersistentUnitTest {
private RoleDao dao;
@@ -35,8 +36,8 @@
autowireByType(courseDao);
autowireByType(accountDao);
//create role object with needed dependencies
- course = new Course(createUniqueId());
- account = new Account(createUniqueId());
+ course = new Course(uniqueId());
+ account = new Account(uniqueId());
courseDao.persist(course);
accountDao.persist(account);
role = newRole();
@@ -77,7 +78,7 @@
}
private Role newRole() {
- Role role = new Role(createUniqueId());
+ Role role = new Role(uniqueId());
role.setAccount(account);
role.setCourse(course);
role.setType(RoleType.ASSISTANT);
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -6,7 +6,7 @@
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
-
+
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
@@ -15,14 +15,16 @@
import javax.xml.transform.Result;
import javax.xml.transform.dom.DOMResult;
+import junit.framework.TestCase;
+
import org.junit.Test;
import org.w3c.dom.Document;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
-import de.campussource.cse.cdmm.domain.Attribute;
import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Attribute;
import de.campussource.cse.cdmm.domain.Category;
import de.campussource.cse.cdmm.domain.Course;
import de.campussource.cse.cdmm.domain.EntityContainer;
@@ -31,8 +33,6 @@
import de.campussource.cse.cdmm.domain.Role;
import de.campussource.cse.cdmm.domain.RoleType;
import de.campussource.cse.cdmm.domain.TransientAttribute;
-
-import junit.framework.TestCase;
/**
* @author Sebastian Roekens
@@ -336,7 +336,6 @@
}
-
private void printDOMResult(DOMResult domResult) throws IOException{
Document doc = (Document) domResult.getNode();
OutputFormat format = new OutputFormat(doc);
Modified: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-10 11:45:48 UTC (rev 74)
@@ -19,6 +19,7 @@
<groupId>de.campussource.cse</groupId>
<artifactId>test-utilities</artifactId>
<version>${pom.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>javax.ejb</groupId>
Modified: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/ClientObjectDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/ClientObjectDaoTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/ClientObjectDaoTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -13,6 +13,8 @@
import org.junit.Before;
import org.junit.Test;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
+
public class ClientObjectDaoTest extends AbstractPersistentUnitTest {
private ClientObjectDao dao;
@@ -30,9 +32,8 @@
public void testPersistClientObject() {
dao.persist(clientObject);
assertNotNull(clientObject.getId());
- txCommit();
}
-
+
@Test
public void testPersistDetachedClientObject() {
dao.persist(clientObject);
@@ -53,14 +54,14 @@
assertEquals(clientObject, coid);
}
- @Test(expected=RollbackException.class)
+ @Test(expected = RollbackException.class)
public void testCreateClientObjectUniqueConstraintError() {
- ClientInstance instance = createClientInstance("TEST","http://test.de");
- dao.persist(newClientObject("TEST::COURSE::1", 1L, instance ));
- dao.persist(newClientObject("TEST::COURSE::1", 1L, instance ));
+ ClientInstance instance = createClientInstance("TEST", "http://test.de");
+ dao.persist(newClientObject("TEST::COURSE::1", 1L, instance));
+ dao.persist(newClientObject("TEST::COURSE::1", 1L, instance));
txCommit();
}
-
+
@Test
public void testRemoveClientObject() {
dao.persist(clientObject);
@@ -70,7 +71,7 @@
commitAndBeginTx();
assertNull(dao.find(clientObject.getId()));
}
-
+
@Test
public void testFindByBusIdAndInstanceId() {
dao.persist(clientObject);
@@ -83,26 +84,25 @@
assertEquals(instanceId, object.getInstanceId());
assertEquals(clientObject.getClientObjectId(), object.getClientObjectId());
}
-
- @Test(expected=javax.persistence.NoResultException.class)
+
+ @Test(expected = javax.persistence.NoResultException.class)
public void testDoNotFindByBusIsAndInstanceId() {
dao.findByBusIdAndInstanceId(-1L, -1L);
}
-
+
@Test
public void testFindByClientObjectIdAndInstanceId() {
dao.persist(clientObject);
commitAndBeginTx();
String coid = clientObject.getClientObjectId();
Long instanceId = clientObject.getInstanceId();
-
- ClientObject object = dao.findByClientObjectIdAndInstanceId(coid,instanceId);
+
+ ClientObject object = dao.findByClientObjectIdAndInstanceId(coid, instanceId);
assertNotNull(object);
assertEquals(clientObject.getBusId(), object.getBusId());
assertEquals(clientObject.getClientObjectId(), object.getClientObjectId());
assertEquals(clientObject.getInstanceId(), object.getInstanceId());
}
-
private ClientInstance createClientInstance(final String name, final String url) {
try {
@@ -114,11 +114,11 @@
}
private ClientObject newClientObject(final String COID, final long BUS_ID, ClientInstance... instance) {
- if (instance.length > 0) {
- return new ClientObject(BUS_ID, COID, instance[0]);
- } else {
- return new ClientObject(BUS_ID, COID, createClientInstance("default","http://www.default.de"));
- }
+ if (instance.length > 0) {
+ return new ClientObject(BUS_ID, COID, instance[0]);
+ } else {
+ return new ClientObject(BUS_ID, COID, createClientInstance("default", "http://www.default.de"));
+ }
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/IdMapperBeanTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/IdMapperBeanTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/IdMapperBeanTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -8,6 +8,8 @@
import org.junit.Before;
import org.junit.Test;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
+
public class IdMapperBeanTest extends AbstractPersistentUnitTest {
private IdMapperBean mapper;
Copied: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitConfigurationTest.java (from rev 68, cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitTest.java)
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitConfigurationTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitConfigurationTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -0,0 +1,32 @@
+package de.campussource.cse.idmapper;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import org.junit.Test;
+
+public class PersistentUnitConfigurationTest {
+
+ @Test
+ public void testConfiguration() {
+ try {
+ EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cseip");
+ EntityManager entityManager = entityManagerFactory.createEntityManager();
+
+ List<ClientInstance> mappings = entityManager.createQuery("SELECT m FROM ClientInstance m").getResultList();
+ assertNotNull(mappings);
+
+ entityManager.close();
+ entityManagerFactory.close();
+ } catch (RuntimeException rt) {
+ rt.printStackTrace();
+ throw rt;
+ }
+ }
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitConfigurationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitTest.java 2009-03-10 11:29:58 UTC (rev 73)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/PersistentUnitTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -1,20 +0,0 @@
-package de.campussource.cse.idmapper;
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.util.List;
-
-
-import org.junit.Test;
-
-
-public class PersistentUnitTest extends AbstractPersistentUnitTest {
-
- @Test
- public void testConfiguration() {
- List<ClientInstance> mappings = entityManager.createQuery("SELECT m FROM ClientInstance m").getResultList();
- assertNotNull(mappings);
- }
-
-}
Added: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/IdentityMapperTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/IdentityMapperTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/IdentityMapperTest.java 2009-03-10 11:45:48 UTC (rev 74)
@@ -0,0 +1,21 @@
+package de.campussource.cse.mapper;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.idmapper.ClientInstance;
+import de.campussource.cse.idmapper.IdMapperBean;
+
+
+public class IdentityMapperTest {
+ @Test
+ public void testPersistClientObjectId() throws MalformedURLException {
+ }
+
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/mapper/IdentityMapperTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-10 11:30:08
|
Revision: 73
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=73&view=rev
Author: idueppe
Date: 2009-03-10 11:29:58 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
refactored unit tests and extracted AbstractPersistentUnitTest to test-utilities.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
Removed Paths:
-------------
cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/AbstractPersistentUnitTest.java
Copied: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java (from rev 68, cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/AbstractPersistentUnitTest.java)
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java 2009-03-10 11:29:58 UTC (rev 73)
@@ -0,0 +1,84 @@
+package de.campussource.cse.common.test;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.Persistence;
+
+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;
+ private AnnotationInjector injector;
+
+ @BeforeClass
+ public static void retrieveEntityManagerFactory() {
+ entityManagerFactory = Persistence.createEntityManagerFactory("cseip");
+ }
+
+ @Before
+ public void retrieveEntityManager() {
+ entityManager = entityManagerFactory.createEntityManager();
+ }
+
+ /**
+ * Checks whether a active transaction exists. If so it will rollback this transaction.
+ */
+ @After
+ public void closeEntity() {
+ EntityTransaction tx = entityManager.getTransaction();
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ entityManager.close();
+ }
+
+ @AfterClass
+ public static void closeFactory() {
+ entityManagerFactory.close();
+ }
+
+
+ protected void autowireByType(Object object) {
+ lazyInjectorInitialization();
+ injector.autowire(object);
+ }
+
+ /**
+ * Checks whether or not the Injector is already initialized or not.
+ */
+ private void lazyInjectorInitialization() {
+ if (injector == null) {
+ injector = new AnnotationInjector().defaultPersistentUnit(entityManager);
+ }
+ }
+
+ /**
+ * Start new transaction in current session
+ */
+ protected void txBegin() {
+ entityManager.getTransaction().begin();
+ }
+
+ /**
+ * Commit current transaction in current session
+ */
+ protected void txCommit() {
+ entityManager.getTransaction().commit();
+ }
+
+ /**
+ * Commit and begin new transaction in current session
+ */
+ protected void commitAndBeginTx() {
+ txCommit();
+ txBegin();
+ }
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AbstractPersistentUnitTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-10 11:24:27 UTC (rev 72)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/pom.xml 2009-03-10 11:29:58 UTC (rev 73)
@@ -16,6 +16,11 @@
<dependencies>
<dependency>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>test-utilities</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
Deleted: cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/AbstractPersistentUnitTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/AbstractPersistentUnitTest.java 2009-03-10 11:24:27 UTC (rev 72)
+++ cse-ip/trunk/sandbox/cse-ip/sc-idmapper/src/test/java/de/campussource/cse/idmapper/AbstractPersistentUnitTest.java 2009-03-10 11:29:58 UTC (rev 73)
@@ -1,114 +0,0 @@
-package de.campussource.cse.idmapper;
-
-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();
- }
-
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 11:24:44
|
Revision: 72
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=72&view=rev
Author: roekens
Date: 2009-03-10 11:24:27 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- refactoring, creating of unique id is pulled up to abstract class
- working on course tests
Modified Paths:
--------------
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/AccountDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
Modified: 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 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AbstractPersistentUnitTest.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -21,6 +21,7 @@
public abstract class AbstractPersistentUnitTest {
protected static EntityManagerFactory entityManagerFactory;
+ static Long currentTimeMillis = System.currentTimeMillis();
protected EntityManager entityManager;
@BeforeClass
@@ -111,4 +112,12 @@
txBegin();
}
+ /**
+ * Convenience method for creating a unique id
+ * @return unique id
+ */
+ protected Long createUniqueId() {
+ return currentTimeMillis++;
+ }
+
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -11,8 +11,6 @@
import de.campussource.cse.cdmm.domain.Account;
public class AccountDaoTest extends AbstractPersistentUnitTest {
- private static Long currentTimeMillis = System.currentTimeMillis();
-
private AccountDao dao;
private Account account;
@@ -60,8 +58,4 @@
private Account newAccount() {
return new Account(createUniqueId());
}
-
- private Long createUniqueId(){
- return currentTimeMillis++;
- }
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -15,8 +15,6 @@
public class CategoryDaoTest extends AbstractPersistentUnitTest{
- private static Long currentTimeMillis = System.currentTimeMillis();
-
private CategoryDao dao;
private Category category;
private Category parentCategory;
@@ -109,9 +107,5 @@
private Category newCategory() {
return new Category(createUniqueId());
}
-
- private Long createUniqueId(){
- return currentTimeMillis++;
- }
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -12,11 +12,12 @@
public class CourseDaoTest extends AbstractPersistentUnitTest {
- private static Long currentTimeMillis = System.currentTimeMillis();
-
private CourseDao dao;
private Course course;
+ /**
+ * Creates a course object for testing and the course dao
+ */
@Before
public void setUp() {
course = newCourse();
@@ -25,6 +26,9 @@
txBegin();
}
+ /**
+ * Tests creating of a course object
+ */
@Test
public void testPersistCourse() {
dao.persist(course);
@@ -33,6 +37,9 @@
}
+ /**
+ * Tests searching for a course object by id
+ */
@Test
public void testFindCourse() {
dao.persist(course);
@@ -42,8 +49,11 @@
assertEquals(course, coid);
}
+ /**
+ * Tests deleting of course object
+ */
@Test
- public void testRemoveCategory() {
+ public void testRemoveCourse() {
dao.persist(course);
assertNotNull(course.getId());
commitAndBeginTx();
@@ -52,18 +62,21 @@
assertNull(dao.find(course.getId()));
}
+ /**
+ * Tests if searching for not existing id returns null
+ */
@Test
public void testDoNotFindById() {
Course foundCourse = dao.find(0L);
assertNull(foundCourse);
}
+ /**
+ * Convenience method for creating a course object with a unique id
+ * @return course object with unique id
+ */
private Course newCourse() {
return new Course(createUniqueId());
}
-
- private Long createUniqueId(){
- return currentTimeMillis++;
- }
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -16,8 +16,6 @@
import de.campussource.cse.cdmm.domain.RoleType;
public class RoleDaoTest extends AbstractPersistentUnitTest {
- private static Long currentTimeMillis = System.currentTimeMillis();
-
private RoleDao dao;
private Role role;
@@ -85,8 +83,4 @@
role.setType(RoleType.ASSISTANT);
return role;
}
-
- private Long createUniqueId(){
- return currentTimeMillis++;
- }
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-10 11:06:21 UTC (rev 71)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-10 11:24:27 UTC (rev 72)
@@ -38,7 +38,7 @@
* @author Sebastian Roekens
*
*/
-public class TestXmlConversion extends TestCase {
+public class TestXmlConversion extends TestCase{
private static Long currentTimeMillis = System.currentTimeMillis();
private Long createUniqueId(){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 11:06:25
|
Revision: 71
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=71&view=rev
Author: roekens
Date: 2009-03-10 11:06:21 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- updated poms, so that sc-cdmm now is generated with main project correctly
- introduced cascading for course objetc -> to be tested
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/cse-ip-application/pom.xml
cse-ip/trunk/sandbox/cse-ip/pom.xml
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
Modified: cse-ip/trunk/sandbox/cse-ip/cse-ip-application/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/cse-ip-application/pom.xml 2009-03-10 10:41:52 UTC (rev 70)
+++ cse-ip/trunk/sandbox/cse-ip/cse-ip-application/pom.xml 2009-03-10 11:06:21 UTC (rev 71)
@@ -21,6 +21,12 @@
<version>${pom.version}</version>
<type>ejb</type>
</dependency>
+ <dependency>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>sc-cdmm</artifactId>
+ <version>${pom.version}</version>
+ <type>ejb</type>
+ </dependency>
</dependencies>
<build>
@@ -37,6 +43,12 @@
<artifactId>sc-idmapper</artifactId>
</ejbModule>
</modules>
+ <modules>
+ <ejbModule>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>sc-cdmm</artifactId>
+ </ejbModule>
+ </modules>
</configuration>
</plugin>
<plugin>
Modified: cse-ip/trunk/sandbox/cse-ip/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-10 10:41:52 UTC (rev 70)
+++ cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-10 11:06:21 UTC (rev 71)
@@ -50,6 +50,7 @@
<module>framework</module>
<module>ica-his-lsf</module>
<module>sc-idmapper</module>
+ <module>sc-cdmm</module>
<module>cse-ip-application</module>
</modules>
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 10:41:52 UTC (rev 70)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 11:06:21 UTC (rev 71)
@@ -2,6 +2,7 @@
import java.util.List;
+import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@@ -29,21 +30,21 @@
@XmlType(propOrder={ Constants.CATEGORIES, Constants.PARENT, Constants.WORKGROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Course extends de.campussource.cse.cdmm.domain.Entity{
- @ManyToOne
+ @ManyToOne(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinTable(name=Constants.COLUMNNAME_PARENT_ID)
private Course parent;
- @OneToMany(mappedBy=Constants.PARENT)
+ @OneToMany(mappedBy=Constants.PARENT, cascade=CascadeType.REMOVE)
private List<Course> workgroups;
- @ManyToMany
+ @ManyToMany(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinTable(
name = Constants.TABLENAME_COURSE2CATEGORY,
joinColumns={@JoinColumn(name=Constants.COLUMNNAME_CATEGORY_ID)},
inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_COURSE_ID)})
private List<Category> categories;
- @OneToMany(mappedBy=Constants.COURSE)
+ @OneToMany(mappedBy=Constants.COURSE, cascade = CascadeType.REMOVE)
private List<Role> roles;
public Course(){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 10:42:06
|
Revision: 70
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=70&view=rev
Author: roekens
Date: 2009-03-10 10:41:52 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- added dependency check for category hierarchy
- added test
- added comments
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-10 10:14:25 UTC (rev 69)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-10 10:41:52 UTC (rev 70)
@@ -52,17 +52,55 @@
this.parent = parent;
}
- public boolean addChild(Category category){
+
+ /**
+ * Convenience method for dependency check to prevent circular dependencies.
+ * True if circular dependency would be created.
+ *
+ * @param newChildCategory new child category to be added to this
+ * @return true, if newChildCategory is present in hierarchy above this, else false
+ */
+ private boolean checkForCircularDependencies(Category newChildCategory){
+ if (this.equals(newChildCategory)){
+ return true;
+ }
+ if (this.isRoot()){
+ return false;
+ }
+ return this.parent.checkForCircularDependencies(newChildCategory);
+ }
+
+ /**
+ * Private method for adding category to list of children.
+ * If list of children does not exist, it is created.
+ *
+ * @param category child category
+ * @return success of operation
+ */
+ private boolean addChild(Category category){
if (this.children == null){
this.children = new ArrayList<Category>();
}
- if (!category.getParent().equals(this)){
+ if (!category.getParent().equals(this)||checkForCircularDependencies(category)){
return false;
}
return this.children.add(category);
}
+ /**
+ * Convenience method for parent <-> children connection of categories.
+ * Parent of this is set to parent category and list of children of parent category
+ * is updated with this.
+ *
+ * @param parent parent category
+ * @return Success of operation
+ */
+ public boolean addToParentCategory(Category parent){
+ this.parent = parent;
+ return parent.addChild(this);
+ }
+
@XmlElementWrapper(name=Constants.CATEGORIES)
@XmlElement(name=Constants.CATEGORY)
public List<Category> getChildren() {
@@ -94,6 +132,12 @@
this.parent = parent;
}
+
+ /**
+ * Convenience method for checking if category is root category.
+ *
+ * @return true if category is root category, else returning false
+ */
@XmlTransient
public boolean isRoot(){
return (parent==null);
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 10:14:25 UTC (rev 69)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 10:41:52 UTC (rev 70)
@@ -3,6 +3,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
@@ -19,6 +21,9 @@
private Category category;
private Category parentCategory;
+ /**
+ * Creates a category object, a parent object for this category and the category dao.
+ */
@Before
public void setUp() {
category = newCategory();
@@ -28,6 +33,9 @@
txBegin();
}
+ /**
+ * Checks if category can be persisted
+ */
@Test
public void testPersistCategory() {
dao.persist(category);
@@ -36,6 +44,9 @@
}
+ /**
+ * Checks if category can be found by id
+ */
@Test
public void testFindCategory() {
dao.persist(category);
@@ -45,6 +56,9 @@
assertEquals(category, coid);
}
+ /**
+ * Checks if category can be deleted
+ */
@Test
public void testRemoveCategory() {
dao.persist(category);
@@ -55,10 +69,12 @@
assertNull(dao.find(category.getId()));
}
+ /**
+ * Checks if cascading saving and cascading deleting work
+ */
@Test
public void testCascading(){
- category.setParent(parentCategory);
- parentCategory.addChild(category);
+ category.addToParentCategory(parentCategory);
dao.persist(category);
txCommit();
assertNotNull(category.getId());
@@ -70,12 +86,26 @@
assertNull(dao.find(category.getId()));
}
+ /**
+ * Checks if searching for not existing ids returns null
+ */
@Test
public void testDoNotFindById() {
Category foundCategory = dao.find(0L);
assertNull(foundCategory);
}
+ /**
+ * Checks if circular category dependencies are prevented
+ */
+ @Test
+ public void testCircularDependencyCheck(){
+ assertTrue(category.addToParentCategory(parentCategory));
+ dao.persist(category);
+ assertFalse(parentCategory.addToParentCategory(category));
+ }
+
+
private Category newCategory() {
return new Category(createUniqueId());
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-10 10:14:49
|
Revision: 69
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=69&view=rev
Author: roekens
Date: 2009-03-10 10:14:25 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- introduced convenience method for adding child categories to parent categories
- bugfixed cascading in categories
- enhanced category tests
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-09 18:09:08 UTC (rev 68)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-10 10:14:25 UTC (rev 69)
@@ -1,5 +1,6 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
@@ -27,11 +28,11 @@
@XmlType(propOrder={Constants.PROPERTY_PARENT, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Category extends de.campussource.cse.cdmm.domain.Entity {
- @ManyToOne(cascade={CascadeType.REMOVE})
+ @ManyToOne(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinTable(name = Constants.COLUMNNAME_CATEGORY2CATEGORY)
private Category parent;
- @OneToMany(mappedBy=Constants.PARENT, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
+ @OneToMany(mappedBy=Constants.PARENT, cascade={CascadeType.REMOVE})
private List<Category> children;
@ManyToMany(mappedBy=Constants.CATEGORIES)
@@ -51,7 +52,17 @@
this.parent = parent;
}
+ public boolean addChild(Category category){
+ if (this.children == null){
+ this.children = new ArrayList<Category>();
+ }
+ if (!category.getParent().equals(this)){
+ return false;
+ }
+ return this.children.add(category);
+ }
+
@XmlElementWrapper(name=Constants.CATEGORIES)
@XmlElement(name=Constants.CATEGORY)
public List<Category> getChildren() {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-09 18:09:08 UTC (rev 68)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 10:14:25 UTC (rev 69)
@@ -58,9 +58,13 @@
@Test
public void testCascading(){
category.setParent(parentCategory);
+ parentCategory.addChild(category);
dao.persist(category);
+ txCommit();
assertNotNull(category.getId());
assertNotNull(parentCategory.getId());
+ assertEquals(category.getParent(), parentCategory);
+ assertEquals(parentCategory.getChildren().get(0), category);
dao.remove(parentCategory);
assertNull(dao.find(parentCategory.getId()));
assertNull(dao.find(category.getId()));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <id...@us...> - 2009-03-09 18:10:04
|
Revision: 68
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=68&view=rev
Author: idueppe
Date: 2009-03-09 18:09:08 +0000 (Mon, 09 Mar 2009)
Log Message:
-----------
Extracted the annotation injection code for unit testing into a separate project.
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/pom.xml
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/framework/
cse-ip/trunk/sandbox/cse-ip/framework/pom.xml
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/.classpath
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjectionException.java
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjector.java
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationProcessor.java
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/
cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/TestAnnotationInjector.java
Added: cse-ip/trunk/sandbox/cse-ip/framework/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/pom.xml (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/pom.xml 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>cse-ip</artifactId>
+ <groupId>de.campussource.cse</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>framework</artifactId>
+ <packaging>pom</packaging>
+ <name>Framework</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <modules>
+ <module>test-utilities</module>
+ </modules>
+</project>
\ No newline at end of file
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/pom.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/.classpath
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/.classpath (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/.classpath 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,17 @@
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymock/2.2/easymock-2.2.jar" sourcepath="M2_REPO/org/easymock/easymock/2.2/easymock-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar" sourcepath="M2_REPO/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0.jar" sourcepath="M2_REPO/javax/ejb/ejb-api/3.0/ejb-api-3.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/development/repository/junit/junit/4.4/junit-4.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e.jar" sourcepath="M2_REPO/toplink/essentials/toplink-essentials/2.1-60e/toplink-essentials-2.1-60e-sources.jar"/>
+</classpath>
\ No newline at end of file
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/.classpath
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>framework</artifactId>
+ <groupId>de.campussource.cse</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>de.campussource.cse</groupId>
+ <artifactId>test-utilities</artifactId>
+ <packaging>jar</packaging>
+ <name>Framework Test Utilities</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ <version>3.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>toplink.essentials</groupId>
+ <artifactId>toplink-essentials</artifactId>
+ <version>2.1-60e</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+</project>
\ No newline at end of file
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/pom.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjectionException.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjectionException.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjectionException.java 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,33 @@
+package de.campussource.cse.common.test;
+
+/**
+ * Generell exception if something went wrong during injection.
+ *
+ * @author Ingo Dueppe
+ *
+ */
+public class AnnotationInjectionException extends RuntimeException {
+ private static final long serialVersionUID = 7995450539390210857L;
+
+ public AnnotationInjectionException() {
+ super();
+ }
+
+ public AnnotationInjectionException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public AnnotationInjectionException(String message) {
+ super(message);
+ }
+
+ public AnnotationInjectionException(Throwable message) {
+ super(message);
+ }
+
+
+ public AnnotationInjectionException(Object target, Throwable cause) {
+ super(target.getClass().getCanonicalName(),cause);
+ }
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjectionException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjector.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjector.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjector.java 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,94 @@
+package de.campussource.cse.common.test;
+
+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.PersistenceContext;
+
+
+public class AnnotationInjector {
+
+ private Map<String, Object> context = new HashMap<String, Object>();
+
+ public AnnotationInjector autowire(Object object) {
+ intoContextByClassName(object);
+ autowireByField(object);
+ return this;
+ }
+
+ public AnnotationInjector defaultPersistentUnit(EntityManager entityManager) {
+ addPersistenceUnit(PersistenceContext.class.getName(), entityManager);
+ return this;
+ }
+
+ public AnnotationInjector addPersistenceUnit(String persistentUnit, EntityManager entityManager) {
+ context.put(persistentUnit, entityManager);
+ return this;
+ }
+
+ private void intoContextByClassName(Object target) {
+ context.put(target.getClass().getName(), target);
+ }
+
+ 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);
+ }
+
+ protected void autowireByField(Object object) {
+ Field[] fields = retrieveAllDeclaredFieldsIncludedInheritance(object);
+ for (Field field : fields) {
+ if (field.isAnnotationPresent(PersistenceContext.class)) {
+ PersistenceContext annotation = field.getAnnotation(PersistenceContext.class);
+ Object target = null;
+ if (annotation.name().isEmpty()) {
+ // inject default persistence unit
+ target = context.get(PersistenceContext.class.getName());
+ } else {
+ target = context.get(annotation.name());
+ }
+ injectField(object, field, target);
+ }
+ if (field.isAnnotationPresent(EJB.class)) {
+ try {
+ Class fieldClass = field.getType();
+ Object target = context.get(fieldClass.getName());
+ if (target == null) {
+ target = fieldClass.newInstance();
+ autowire(target);
+ context.put(fieldClass.getName(), target);
+ }
+ injectField(object, field, target);
+ } catch (InstantiationException e) {
+ throw new AnnotationInjectionException(object, e);
+ } catch (IllegalAccessException e) {
+ throw new AnnotationInjectionException(object, e);
+ }
+ }
+ }
+ }
+
+ 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()]);
+ }
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationInjector.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationProcessor.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationProcessor.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationProcessor.java 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,5 @@
+package de.campussource.cse.common.test;
+
+public interface AnnotationProcessor {
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/main/java/de/campussource/cse/common/test/AnnotationProcessor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/TestAnnotationInjector.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/TestAnnotationInjector.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/TestAnnotationInjector.java 2009-03-09 18:09:08 UTC (rev 68)
@@ -0,0 +1,88 @@
+package de.campussource.cse.common.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateful;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.easymock.classextension.EasyMock;
+import org.junit.Test;
+
+
+public class TestAnnotationInjector {
+
+ @Test
+ public void testEJBInjection() {
+ AnnotationInjector injector = new AnnotationInjector();
+
+ BeanOne beanOne = new BeanOne();
+ injector.autowire(beanOne);
+
+ assertNotNull(beanOne.two);
+ assertNotNull(beanOne.two.one);
+ assertNotNull(beanOne.two.three.one);
+ assertEquals(beanOne, beanOne.two.one);
+ assertEquals(beanOne, beanOne.two.three.one);
+ }
+
+ @Test
+ public void testPersistenceInjection() {
+ EntityManager em = EasyMock.createMock(EntityManager.class);
+ AnnotationInjector injector = new AnnotationInjector().defaultPersistentUnit(em);
+
+ BeanOne beanOne = new BeanOne();
+ injector.autowire(beanOne);
+
+ assertNotNull(beanOne.context);
+ assertEquals(em, beanOne.context);
+ }
+
+ @Test(expected=AnnotationInjectionException.class)
+ public void testInjectionError() {
+ new AnnotationInjector().autowire(new BeanError());
+ }
+
+ @Stateless
+ public static class BeanError {
+ @SuppressWarnings("unused")
+ @EJB
+ private NoBean bean;
+ }
+
+ @Stateless
+ public static class NoBean {
+ public NoBean(BeanError error) {
+ }
+ }
+
+
+ @Stateless
+ public static class BeanOne {
+ @EJB
+ private BeanTwo two;
+
+ @PersistenceContext
+ private EntityManager context;
+ }
+
+ @Stateless
+ public static class BeanTwo {
+ @EJB
+ private BeanOne one;
+ @EJB
+ private BeanThree three;
+ }
+
+ @Stateful
+ public static class BeanThree {
+ @EJB
+ private BeanOne one;
+ }
+
+
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/framework/test-utilities/src/test/java/de/campussource/cse/common/test/TestAnnotationInjector.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: cse-ip/trunk/sandbox/cse-ip/pom.xml
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-09 16:22:06 UTC (rev 67)
+++ cse-ip/trunk/sandbox/cse-ip/pom.xml 2009-03-09 18:09:08 UTC (rev 68)
@@ -47,6 +47,7 @@
</organization>
<modules>
+ <module>framework</module>
<module>ica-his-lsf</module>
<module>sc-idmapper</module>
<module>cse-ip-application</module>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-09 16:22:13
|
Revision: 67
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=67&view=rev
Author: roekens
Date: 2009-03-09 16:22:06 +0000 (Mon, 09 Mar 2009)
Log Message:
-----------
- introduced cascading for categories
- several bugfixes
- more tests
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-09 13:13:44 UTC (rev 66)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-09 16:22:06 UTC (rev 67)
@@ -36,6 +36,7 @@
//entity property names
public static final String PROPERTY_ATTRIBUTES = "attributes";
public static final String PROPERTY_PARENTS = "parents";
+ public static final String PROPERTY_PARENT = "parent";
public static final String PROPERTY_CHILDREN = "children";
public static final String PROPERTY_COURSES = "courses";
public static final String PROPERTY_NAME = "name";
@@ -49,11 +50,11 @@
public static final String TABLENAME_ENTITY = "CDMM_ENTITY";
public static final String TABLENAME_GROUP = "CDMM_GROUP";
public static final String TABLENAME_ROLE = "CDMM_ROLE";
- public static final String TABLENAME_CATEGORY2CATEGORY = "CDMM_CAT2CAT";
public static final String TABLENAME_GROUP2ACCOUNT = "CDMM_GROUP2ACCOUNT";
public static final String TABLENAME_COURSE2CATEGORY = "CDMM_COURSE2CAT";
//column names
+ public static final String COLUMNNAME_CATEGORY2CATEGORY = "PARENT_CAT_ID";
public static final String COLUMNNAME_ROLE_TYPE="ROLE_TYPE";
public static final String COLUMNNAME_CHILD_ID="CHILD_ID";
public static final String COLUMNNAME_PARENT_ID="PARENT_ID";
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-09 13:13:44 UTC (rev 66)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-09 16:22:06 UTC (rev 67)
@@ -1,5 +1,6 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
@@ -22,7 +23,7 @@
@Table(name = Constants.TABLENAME_ACCOUNT)
@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@XmlType(propOrder={ Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
+@XmlType(propOrder={Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Account extends de.campussource.cse.cdmm.domain.Entity{
@OneToMany(mappedBy=Constants.ACCOUNT)
@@ -48,6 +49,54 @@
this.roles = roles;
}
+ public boolean addToGroup(Group group){
+ if(group==null){
+ return false;
+ }
+ List<Group> groups = this.getGroups();
+ if (groups==null){
+ groups = new ArrayList<Group>();
+ }
+ if (groups.contains(group)||group.getMembers().contains(this)){
+ return false;
+ }
+ groups.add(group);
+ setGroups(groups);
+ List<Account> accounts = group.getMembers();
+ if (accounts == null){
+ accounts = new ArrayList<Account>();
+ }
+ accounts.add(this);
+ group.setMembers(accounts);
+ return true;
+ }
+
+ public boolean removeFromGroup(Group group){
+ if (group == null){
+ return false;
+ }
+ List<Group> groups = this.getGroups();
+ if (!groups.contains(group)||!group.getMembers().contains(this)){
+ return false;
+ }
+ groups.remove(group);
+ setGroups(groups);
+ List<Account> accounts = group.getMembers();
+ accounts.remove(this);
+ group.setMembers(accounts);
+ return true;
+ }
+
+ public boolean isInGroup(Group group){
+ if (group == null){
+ return false;
+ }
+ if (group.getMembers()==null){
+ return false;
+ }
+ return (group.getMembers().contains(this));
+ }
+
@XmlElementWrapper(name=Constants.ROLES)
@XmlElement(name=Constants.ROLE)
public List<Role> getRoles() {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-09 13:13:44 UTC (rev 66)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-09 16:22:06 UTC (rev 67)
@@ -2,12 +2,14 @@
import java.util.List;
+import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
-import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
@@ -22,17 +24,14 @@
@Inheritance(strategy=InheritanceType.JOINED)
@Table(name = Constants.TABLENAME_CATEGORY)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@XmlType(propOrder={Constants.PROPERTY_PARENTS, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
+@XmlType(propOrder={Constants.PROPERTY_PARENT, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Category extends de.campussource.cse.cdmm.domain.Entity {
- @ManyToMany
- @JoinTable(
- name = Constants.TABLENAME_CATEGORY2CATEGORY,
- joinColumns={@JoinColumn(name=Constants.COLUMNNAME_CHILD_ID)},
- inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_PARENT_ID)})
- private List<Category> parents;
+ @ManyToOne(cascade={CascadeType.REMOVE})
+ @JoinTable(name = Constants.COLUMNNAME_CATEGORY2CATEGORY)
+ private Category parent;
- @ManyToMany(mappedBy=Constants.PARENTS)
+ @OneToMany(mappedBy=Constants.PARENT, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
private List<Category> children;
@ManyToMany(mappedBy=Constants.CATEGORIES)
@@ -45,14 +44,14 @@
setId(id);
}
- public Category(Long id, List<Category> children, List<Course> courses, List<Category> parents){
+ public Category(Long id, List<Category> children, List<Course> courses, Category parent){
setId(id);
this.children = children;
this.courses = courses;
- this.parents = parents;
+ this.parent = parent;
}
-
-
+
+
@XmlElementWrapper(name=Constants.CATEGORIES)
@XmlElement(name=Constants.CATEGORY)
public List<Category> getChildren() {
@@ -74,20 +73,19 @@
this.courses = courses;
}
- @XmlElementWrapper(name=Constants.PARENTS)
@XmlElement(name=Constants.PARENT)
@XmlIDREF
- public List<Category> getParents() {
- return parents;
+ public Category getParent() {
+ return parent;
}
- public void setParents(List<Category> parents) {
- this.parents = parents;
+ public void setParent(Category parent) {
+ this.parent = parent;
}
@XmlTransient
public boolean isRoot(){
- return ((parents==null)||parents.size()==0);
+ return (parent==null);
}
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-09 13:13:44 UTC (rev 66)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-09 16:22:06 UTC (rev 67)
@@ -17,10 +17,12 @@
private CategoryDao dao;
private Category category;
+ private Category parentCategory;
@Before
public void setUp() {
category = newCategory();
+ parentCategory = newCategory();
dao = new CategoryDao();
autowireByType(dao);
txBegin();
@@ -54,6 +56,17 @@
}
@Test
+ public void testCascading(){
+ category.setParent(parentCategory);
+ dao.persist(category);
+ assertNotNull(category.getId());
+ assertNotNull(parentCategory.getId());
+ dao.remove(parentCategory);
+ assertNull(dao.find(parentCategory.getId()));
+ assertNull(dao.find(category.getId()));
+ }
+
+ @Test
public void testDoNotFindById() {
Category foundCategory = dao.find(0L);
assertNull(foundCategory);
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-09 13:13:44 UTC (rev 66)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-09 16:22:06 UTC (rev 67)
@@ -350,17 +350,17 @@
Category parentCategory = new Category(createUniqueId());
Category childCategory = new Category(createUniqueId());
- List<Category> parentCategoryList = new ArrayList<Category>();
- parentCategoryList.add(parentCategory);
List<Category> childCategoryList = new ArrayList<Category>();
childCategoryList.add(childCategory);
parentCategory.setChildren(childCategoryList);
- childCategory.setParents(parentCategoryList);
+ childCategory.setParent(parentCategory);
//create Course with one child workgroup
+ List<Category> parentCategoryList = new ArrayList<Category>();
+ parentCategoryList.add(parentCategory);
Course course = new Course(createUniqueId());
course.setCategories(parentCategoryList);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-09 13:14:12
|
Revision: 66
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=66&view=rev
Author: roekens
Date: 2009-03-09 13:13:44 +0000 (Mon, 09 Mar 2009)
Log Message:
-----------
- several bugfixes regarding jpa annotations, such as inheritance handling, column names, etc.
- introduction of first jpa test cases for entities
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -21,6 +21,7 @@
public static final String PARENTS = "parents";
public static final String MEMBERS = "members";
public static final String TYPE = "type";
+ public static final String ENTITY = "entity";
//entity ids
public static final String COURSE_ID = "courseId";
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -1,7 +1,7 @@
package de.campussource.cse.cdmm.dao;
-import com.sun.xml.internal.stream.Entity;
import de.campussource.cse.cdmm.dao.DAOJPA;
+import de.campussource.cse.cdmm.domain.Entity;
public class EntityDao extends DAOJPA<Entity> {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -3,6 +3,8 @@
import java.util.List;
import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@@ -16,8 +18,9 @@
import de.campussource.cse.cdmm.Constants;
-@Entity
+@Entity(name=Constants.ACCOUNT)
@Table(name = Constants.TABLENAME_ACCOUNT)
+@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={ Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Account extends de.campussource.cse.cdmm.domain.Entity{
@@ -28,7 +31,7 @@
@ManyToMany
@JoinTable(
name = Constants.TABLENAME_GROUP2ACCOUNT,
- joinColumns={@JoinColumn(name=Constants.COLUMNNAME_GROUP_ID)},
+ joinColumns={@JoinColumn(name=Constants.COLUMNNAME_ACCOUNT_ID)},
inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_GROUP_ID)})
private List<Group> groups;
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -3,6 +3,8 @@
import java.util.List;
import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@@ -16,7 +18,8 @@
import de.campussource.cse.cdmm.Constants;
-@Entity
+@Entity(name=Constants.CATEGORY)
+@Inheritance(strategy=InheritanceType.JOINED)
@Table(name = Constants.TABLENAME_CATEGORY)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.PROPERTY_PARENTS, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -3,6 +3,8 @@
import java.util.List;
import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@@ -20,8 +22,9 @@
import de.campussource.cse.cdmm.Constants;
-@Entity
+@Entity(name=Constants.COURSE)
@Table(name = Constants.TABLENAME_COURSE)
+@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={ Constants.CATEGORIES, Constants.PARENT, Constants.WORKGROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Course extends de.campussource.cse.cdmm.domain.Entity{
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -7,6 +7,8 @@
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
@@ -22,13 +24,14 @@
import de.campussource.cse.cdmm.Constants;
import de.campussource.cse.cdmm.IdAdapter;
-@javax.persistence.Entity
+@javax.persistence.Entity(name=Constants.ENTITY)
+@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.ID, Constants.PROPERTY_ATTRIBUTES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Entity{
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Transient
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -3,6 +3,8 @@
import java.util.List;
import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlElement;
@@ -16,8 +18,9 @@
import de.campussource.cse.cdmm.Constants;
-@Entity
+@Entity(name=Constants.GROUP)
@Table(name = Constants.TABLENAME_GROUP)
+@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.MEMBERS}, namespace=Constants.NAMESPACE_DATATYPES)
public class Group extends Account{
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -2,6 +2,10 @@
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@@ -13,21 +17,23 @@
import de.campussource.cse.cdmm.Constants;
import de.campussource.cse.cdmm.domain.RoleType;
-@Entity
+@Entity(name=Constants.ROLE)
@Table(name = Constants.TABLENAME_ROLE)
+@Inheritance(strategy=InheritanceType.JOINED)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.TYPE, Constants.ACCOUNT, Constants.COURSE}, namespace=Constants.NAMESPACE_DATATYPES)
public class Role extends de.campussource.cse.cdmm.domain.Entity{
- @Column(name=Constants.COLUMNNAME_ROLE_TYPE)
+ @Column(name=Constants.COLUMNNAME_ROLE_TYPE, nullable=false, insertable=true, updatable=true)
+ @Enumerated(EnumType.ORDINAL)
private RoleType type;
- @ManyToOne
- @JoinColumn(name=Constants.COLUMNNAME_ACCOUNT_ID)
+ @ManyToOne(optional=false)
+ @JoinColumn(name=Constants.COLUMNNAME_ACCOUNT_ID, nullable=false)
private Account account;
- @ManyToOne
- @JoinColumn(name=Constants.COLUMNNAME_COURSE_ID)
+ @ManyToOne(optional=false)
+ @JoinColumn(name=Constants.COLUMNNAME_COURSE_ID, nullable=false)
private Course course;
public Role(){
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -0,0 +1,67 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.dao.AccountDao;
+import de.campussource.cse.cdmm.domain.Account;
+
+public class AccountDaoTest extends AbstractPersistentUnitTest {
+ private static Long currentTimeMillis = System.currentTimeMillis();
+
+ private AccountDao dao;
+ private Account account;
+
+ @Before
+ public void setUp() {
+ account = newAccount();
+ dao = new AccountDao();
+ autowireByType(dao);
+ txBegin();
+ }
+
+ @Test
+ public void testPersistAccount() {
+ dao.persist(account);
+ assertNotNull(account.getId());
+ txCommit();
+ }
+
+
+ @Test
+ public void testFindAccount() {
+ dao.persist(account);
+ assertNotNull(account.getId());
+ commitAndBeginTx();
+ Account acid = dao.find(account.getId());
+ assertEquals(account, acid);
+ }
+
+ @Test
+ public void testRemoveAccount() {
+ dao.persist(account);
+ assertNotNull(account.getId());
+ commitAndBeginTx();
+ dao.remove(account);
+ commitAndBeginTx();
+ assertNull(dao.find(account.getId()));
+ }
+
+ @Test
+ public void testDoNotFindById() {
+ Account foundAccount = dao.find(0L);
+ assertNull(foundAccount);
+ }
+
+ private Account newAccount() {
+ return new Account(createUniqueId());
+ }
+
+ private Long createUniqueId(){
+ return currentTimeMillis++;
+ }
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-06 15:10:11 UTC (rev 65)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -4,8 +4,6 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import javax.persistence.RollbackException;
-
import org.junit.Before;
import org.junit.Test;
@@ -55,10 +53,10 @@
assertNull(dao.find(category.getId()));
}
- @Test(expected=javax.persistence.NoResultException.class)
+ @Test
public void testDoNotFindById() {
- //FIXME why no fail?
- //assertNull(dao.find(1L));
+ Category foundCategory = dao.find(0L);
+ assertNull(foundCategory);
}
private Category newCategory() {
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -0,0 +1,69 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.dao.CourseDao;
+import de.campussource.cse.cdmm.domain.Course;
+
+public class CourseDaoTest extends AbstractPersistentUnitTest {
+
+ private static Long currentTimeMillis = System.currentTimeMillis();
+
+ private CourseDao dao;
+ private Course course;
+
+ @Before
+ public void setUp() {
+ course = newCourse();
+ dao = new CourseDao();
+ autowireByType(dao);
+ txBegin();
+ }
+
+ @Test
+ public void testPersistCourse() {
+ dao.persist(course);
+ assertNotNull(course.getId());
+ txCommit();
+ }
+
+
+ @Test
+ public void testFindCourse() {
+ dao.persist(course);
+ assertNotNull(course.getId());
+ commitAndBeginTx();
+ Course coid = dao.find(course.getId());
+ assertEquals(course, coid);
+ }
+
+ @Test
+ public void testRemoveCategory() {
+ dao.persist(course);
+ assertNotNull(course.getId());
+ commitAndBeginTx();
+ dao.remove(course);
+ commitAndBeginTx();
+ assertNull(dao.find(course.getId()));
+ }
+
+ @Test
+ public void testDoNotFindById() {
+ Course foundCourse = dao.find(0L);
+ assertNull(foundCourse);
+ }
+
+ private Course newCourse() {
+ return new Course(createUniqueId());
+ }
+
+ private Long createUniqueId(){
+ return currentTimeMillis++;
+ }
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java 2009-03-09 13:13:44 UTC (rev 66)
@@ -0,0 +1,92 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.dao.AccountDao;
+import de.campussource.cse.cdmm.dao.CourseDao;
+import de.campussource.cse.cdmm.dao.RoleDao;
+import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Course;
+import de.campussource.cse.cdmm.domain.Role;
+import de.campussource.cse.cdmm.domain.RoleType;
+
+public class RoleDaoTest extends AbstractPersistentUnitTest {
+ private static Long currentTimeMillis = System.currentTimeMillis();
+
+ private RoleDao dao;
+ private Role role;
+
+ private CourseDao courseDao;
+ private Course course;
+
+ private AccountDao accountDao;
+ private Account account;
+
+ @Before
+ public void setUp() {
+ //set up daos
+ dao = new RoleDao();
+ courseDao = new CourseDao();
+ accountDao = new AccountDao();
+ autowireByType(dao);
+ autowireByType(courseDao);
+ autowireByType(accountDao);
+ //create role object with needed dependencies
+ course = new Course(createUniqueId());
+ account = new Account(createUniqueId());
+ courseDao.persist(course);
+ accountDao.persist(account);
+ role = newRole();
+ txBegin();
+ }
+
+ @Test
+ public void testPersistRole() {
+ dao.persist(role);
+ assertNotNull(role.getId());
+ txCommit();
+ }
+
+
+ @Test
+ public void testFindRole() {
+ dao.persist(role);
+ assertNotNull(role.getId());
+ commitAndBeginTx();
+ Role roid = dao.find(role.getId());
+ assertEquals(role, roid);
+ }
+
+ @Test
+ public void testRemoveRole() {
+ dao.persist(role);
+ assertNotNull(role.getId());
+ commitAndBeginTx();
+ dao.remove(role);
+ commitAndBeginTx();
+ assertNull(dao.find(role.getId()));
+ }
+
+ @Test
+ public void testDoNotFindById() {
+ Role foundRole= dao.find(0L);
+ assertNull(foundRole);
+ }
+
+ private Role newRole() {
+ Role role = new Role(createUniqueId());
+ role.setAccount(account);
+ role.setCourse(course);
+ role.setType(RoleType.ASSISTANT);
+ return role;
+ }
+
+ private Long createUniqueId(){
+ return currentTimeMillis++;
+ }
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/RoleDaoTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-06 15:10:17
|
Revision: 65
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=65&view=rev
Author: roekens
Date: 2009-03-06 15:10:11 +0000 (Fri, 06 Mar 2009)
Log Message:
-----------
introducing tests for categoryDao
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-06 14:27:48 UTC (rev 64)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-06 15:10:11 UTC (rev 65)
@@ -1,11 +1,72 @@
package de.campussource.cse.cdmm;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import javax.persistence.RollbackException;
+
+import org.junit.Before;
import org.junit.Test;
+import de.campussource.cse.cdmm.dao.CategoryDao;
+import de.campussource.cse.cdmm.domain.Category;
+
+
public class CategoryDaoTest extends AbstractPersistentUnitTest{
+ private static Long currentTimeMillis = System.currentTimeMillis();
+
+ private CategoryDao dao;
+ private Category category;
+
+ @Before
+ public void setUp() {
+ category = newCategory();
+ dao = new CategoryDao();
+ autowireByType(dao);
+ txBegin();
+ }
+
@Test
- public void testXYZ(){
+ public void testPersistCategory() {
+ dao.persist(category);
+ assertNotNull(category.getId());
+ txCommit();
}
+
+ @Test
+ public void testFindCategory() {
+ dao.persist(category);
+ assertNotNull(category.getId());
+ commitAndBeginTx();
+ Category coid = dao.find(category.getId());
+ assertEquals(category, coid);
+ }
+
+ @Test
+ public void testRemoveCategory() {
+ dao.persist(category);
+ assertNotNull(category.getId());
+ commitAndBeginTx();
+ dao.remove(category);
+ commitAndBeginTx();
+ assertNull(dao.find(category.getId()));
+ }
+
+ @Test(expected=javax.persistence.NoResultException.class)
+ public void testDoNotFindById() {
+ //FIXME why no fail?
+ //assertNull(dao.find(1L));
+ }
+
+ private Category newCategory() {
+ return new Category(createUniqueId());
+ }
+
+ private Long createUniqueId(){
+ return currentTimeMillis++;
+ }
+
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-06 14:27:48 UTC (rev 64)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-06 15:10:11 UTC (rev 65)
@@ -25,7 +25,6 @@
import de.campussource.cse.cdmm.domain.Account;
import de.campussource.cse.cdmm.domain.Category;
import de.campussource.cse.cdmm.domain.Course;
-import de.campussource.cse.cdmm.domain.Entity;
import de.campussource.cse.cdmm.domain.EntityContainer;
import de.campussource.cse.cdmm.domain.Group;
import de.campussource.cse.cdmm.domain.PersistentAttribute;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-06 14:28:08
|
Revision: 64
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=64&view=rev
Author: roekens
Date: 2009-03-06 14:27:48 +0000 (Fri, 06 Mar 2009)
Log Message:
-----------
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml
Modified: 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 2009-03-06 14:23:49 UTC (rev 63)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/resources/META-INF/persistence.xml 2009-03-06 14:27:48 UTC (rev 64)
@@ -4,20 +4,19 @@
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>
+ <class>de.campussource.cse.cdmm.domain.Account</class>
+ <class>de.campussource.cse.cdmm.domain.Category</class>
+ <class>de.campussource.cse.cdmm.domain.Course</class>
+ <class>de.campussource.cse.cdmm.domain.Entity</class>
+ <class>de.campussource.cse.cdmm.domain.Group</class>
+ <class>de.campussource.cse.cdmm.domain.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="csesql" />
+ <property name="toplink.jdbc.password" value="masterkey" />
</properties>
</persistence-unit>
</persistence>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ro...@us...> - 2009-03-06 14:24:04
|
Revision: 63
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=63&view=rev
Author: roekens
Date: 2009-03-06 14:23:49 +0000 (Fri, 06 Mar 2009)
Log Message:
-----------
introduction of persistence realisation
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java
Added Paths:
-----------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -3,15 +3,27 @@
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import de.campussource.cse.cdmm.dao.*;
+
@Stateless
public class DataModelManagerBean implements DataModelManager {
-// @EJB
-// private ClientObjectDao objectDao;
-//
-// @EJB
-// private ClientInstanceDao instanceDao;
-
+ @EJB
+ private AccountDao accountDao;
+ @EJB
+ private CategoryDao categoryDao;
+ @EJB
+ private CourseDao courseDao;
+
+ @EJB
+ private EntityDao entityDao;
+
+ @EJB
+ private GroupDao groupDao;
+
+ @EJB
+ private RoleDao roleDao;
+
}
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -2,7 +2,6 @@
import java.util.List;
-import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
@@ -18,7 +17,6 @@
import de.campussource.cse.cdmm.Constants;
@Entity
-@Embeddable
@Table(name = Constants.TABLENAME_ACCOUNT)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={ Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -1,6 +1,5 @@
package de.campussource.cse.cdmm.domain;
-import javax.persistence.Embeddable;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@@ -9,7 +8,6 @@
import de.campussource.cse.cdmm.Constants;
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@Embeddable
@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
public class Attribute {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -2,7 +2,6 @@
import java.util.List;
-import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
@@ -18,7 +17,6 @@
import de.campussource.cse.cdmm.Constants;
@Entity
-@Embeddable
@Table(name = Constants.TABLENAME_CATEGORY)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.PROPERTY_PARENTS, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
@@ -31,7 +29,7 @@
inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_PARENT_ID)})
private List<Category> parents;
- @ManyToMany(mappedBy=Constants.PARENT)
+ @ManyToMany(mappedBy=Constants.PARENTS)
private List<Category> children;
@ManyToMany(mappedBy=Constants.CATEGORIES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -2,7 +2,6 @@
import java.util.List;
-import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
@@ -22,7 +21,6 @@
import de.campussource.cse.cdmm.Constants;
@Entity
-@Embeddable
@Table(name = Constants.TABLENAME_COURSE)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={ Constants.CATEGORIES, Constants.PARENT, Constants.WORKGROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -7,6 +7,7 @@
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
@@ -21,6 +22,7 @@
import de.campussource.cse.cdmm.Constants;
import de.campussource.cse.cdmm.IdAdapter;
+@javax.persistence.Entity
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.ID, Constants.PROPERTY_ATTRIBUTES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Entity{
@@ -29,6 +31,7 @@
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
+ @Transient
private List<Attribute> attributes;
public Entity(){
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -2,7 +2,6 @@
import java.util.List;
-import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@@ -18,7 +17,6 @@
import de.campussource.cse.cdmm.Constants;
@Entity
-@Embeddable
@Table(name = Constants.TABLENAME_GROUP)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.MEMBERS}, namespace=Constants.NAMESPACE_DATATYPES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/PersistentAttribute.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -1,13 +1,11 @@
package de.campussource.cse.cdmm.domain;
-import javax.persistence.Embeddable;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import de.campussource.cse.cdmm.Constants;
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@Embeddable
@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
public class PersistentAttribute extends Attribute {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -1,7 +1,6 @@
package de.campussource.cse.cdmm.domain;
import javax.persistence.Column;
-import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@@ -15,7 +14,6 @@
import de.campussource.cse.cdmm.domain.RoleType;
@Entity
-@Embeddable
@Table(name = Constants.TABLENAME_ROLE)
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.TYPE, Constants.ACCOUNT, Constants.COURSE}, namespace=Constants.NAMESPACE_DATATYPES)
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java 2009-03-06 13:29:28 UTC (rev 62)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/TransientAttribute.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -1,13 +1,11 @@
package de.campussource.cse.cdmm.domain;
-import javax.persistence.Embeddable;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import de.campussource.cse.cdmm.Constants;
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
-@Embeddable
@XmlType(namespace=Constants.NAMESPACE_DATATYPES)
public class TransientAttribute extends Attribute {
public TransientAttribute(){}
Added: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java (rev 0)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-06 14:23:49 UTC (rev 63)
@@ -0,0 +1,11 @@
+package de.campussource.cse.cdmm;
+
+import org.junit.Test;
+
+public class CategoryDaoTest extends AbstractPersistentUnitTest{
+
+ @Test
+ public void testXYZ(){
+ }
+
+}
Property changes on: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|