|
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.
|