From: <ro...@us...> - 2009-05-19 09:11:00
|
Revision: 215 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=215&view=rev Author: roekens Date: 2009-05-19 09:10:23 +0000 (Tue, 19 May 2009) Log Message: ----------- several bugfixes and test enhancements Modified Paths: -------------- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/ModelMergerBean.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDaoJPA.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Constants.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/messages/InputMessage.java trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/ModelMergerTest.java trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/webservice/DataModelManagerWebServiceTest.java Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-05-19 09:10:23 UTC (rev 215) @@ -44,6 +44,7 @@ eventBuilder.setEventTime(message.getEventTime()); if (loaded.isOlder(input.getDate())) { ModelMergerBean merger = new ModelMergerBean(); + merger.setDao(entityDao); merger.setEventBuilder(eventBuilder); merger.merge(input); Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/ModelMergerBean.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/ModelMergerBean.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/ModelMergerBean.java 2009-05-19 09:10:23 UTC (rev 215) @@ -3,7 +3,7 @@ import java.util.List; import javax.ejb.EJB; -import javax.ejb.Local; +import javax.ejb.Remote; import javax.ejb.Stateless; import de.campussource.cse.cdmm.dao.EntityDao; @@ -21,10 +21,9 @@ * */ @Stateless -@Local(ModelMerger.class) +@Remote(ModelMerger.class) public class ModelMergerBean implements ModelMerger { - @EJB private EntityDao dao; private EventBuilder eventBuilder; @@ -113,13 +112,17 @@ } - public void setEntityDao(EntityDao dao) { - this.dao = dao; - } - public void setEventBuilder(EventBuilder eventBuilder) { this.eventBuilder = eventBuilder; } + public EntityDao getDao() { + return dao; + } + + public void setDao(EntityDao dao) { + this.dao = dao; + } + } Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDaoJPA.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDaoJPA.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDaoJPA.java 2009-05-19 09:10:23 UTC (rev 215) @@ -1,5 +1,6 @@ package de.campussource.cse.cdmm.dao; +import javax.ejb.Local; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -13,6 +14,7 @@ * */ @Stateless +@Local(EntityDao.class) public class EntityDaoJPA implements EntityDao { @PersistenceContext Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Constants.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Constants.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Constants.java 2009-05-19 09:10:23 UTC (rev 215) @@ -38,6 +38,7 @@ public static final String MEMBER = "member"; public static final String ATTRIBUTE = "attribute"; public static final String ATTRIBUTES = "attributes"; + public static final String INPUT_MESSAGE = "inputMessageType"; //entity property names public static final String PROPERTY_ATTRIBUTES = "attributes"; Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/messages/InputMessage.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/messages/InputMessage.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/messages/InputMessage.java 2009-05-19 09:10:23 UTC (rev 215) @@ -3,9 +3,17 @@ import java.util.Date; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; +import de.campussource.cse.cdmm.domain.Account; +import de.campussource.cse.cdmm.domain.Category; import de.campussource.cse.cdmm.domain.Constants; +import de.campussource.cse.cdmm.domain.Course; import de.campussource.cse.cdmm.domain.Entity; +import de.campussource.cse.cdmm.domain.Group; +import de.campussource.cse.cdmm.domain.Role; /** @@ -29,6 +37,8 @@ * @author Sebastian Roekens * */ +@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(name=Constants.INPUT_MESSAGE, propOrder={ Constants.ENTITY, Constants.EVENT_TIME, Constants.INPUT_EVENT}, namespace=Constants.NAMESPACE_DATATYPES) public class InputMessage { private Date eventTime; @@ -59,7 +69,13 @@ return entity; } - @XmlElement(name = Constants.ENTITY) + @XmlElements(value={ + @XmlElement(type=Account.class, name = Constants.ACCOUNT), + @XmlElement(type=Group.class, name = Constants.GROUP), + @XmlElement(type=Role.class, name = Constants.ROLE), + @XmlElement(type=Course.class, name = Constants.COURSE), + @XmlElement(type=Category.class, name = Constants.CATEGORY) + }) public void setEntity(Entity entity) { this.entity = entity; } Modified: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/ModelMergerTest.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/ModelMergerTest.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/ModelMergerTest.java 2009-05-19 09:10:23 UTC (rev 215) @@ -37,7 +37,7 @@ @Before public void setUp() { ModelMergerBean modelMerger = new ModelMergerBean(); - modelMerger.setEntityDao(daoMockup); + modelMerger.setDao(daoMockup); modelMerger.setEventBuilder(builder); merger = modelMerger; Modified: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-05-19 09:10:23 UTC (rev 215) @@ -5,6 +5,7 @@ import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.xml.bind.JAXBContext; @@ -33,6 +34,8 @@ import de.campussource.cse.cdmm.domain.Role; import de.campussource.cse.cdmm.domain.RoleType; import de.campussource.cse.cdmm.domain.TransientAttribute; +import de.campussource.cse.cdmm.messages.InputEventType; +import de.campussource.cse.cdmm.messages.InputMessage; /** * @author Sebastian Roekens @@ -305,7 +308,7 @@ JAXBContext context = null; try { context = JAXBContext.newInstance(new Class[] { EntityContainer.class, Account.class, Group.class, - Role.class, Course.class, Category.class }); + Role.class, Course.class, Category.class, InputMessage.class }); marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); } catch (JAXBException e) { @@ -471,6 +474,45 @@ } @Test + public void testInputMessageXml() { + System.out.println("----- entering InputMessage XML Test -----"); + + InputMessage inputMessage = new InputMessage(); + inputMessage.setEntity(new Course(1L)); + inputMessage.setEventTime(new Date()); + inputMessage.setInputEvent(InputEventType.CREATE_UPDATE); + + Marshaller marshaller = null; + JAXBContext context = null; + try { + context = JAXBContext.newInstance(InputMessage.class); + marshaller = context.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); + } catch (JAXBException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + + // convert group object to xml + String outputXml = ""; + try { + Writer writer = new StringWriter(); + marshaller.marshal(inputMessage, writer); + outputXml = writer.toString(); + writer.close(); + } catch (JAXBException e) { + fail(e.getMessage()); + } catch (IOException e) { + fail(e.getMessage()); + } + assertTrue((outputXml != null) && (outputXml != "")); + System.out.println(outputXml); + + System.out.println("----- leaving InputMessage XML Test -----"); + } + + + @Test public void testUnmarshalling() { String courseXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<tns:course xmlns:tns=\"http://cse.campussource.de/DataTypes\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" Modified: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/webservice/DataModelManagerWebServiceTest.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/webservice/DataModelManagerWebServiceTest.java 2009-05-14 12:49:09 UTC (rev 214) +++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/webservice/DataModelManagerWebServiceTest.java 2009-05-19 09:10:23 UTC (rev 215) @@ -1,14 +1,24 @@ package de.campussource.cse.cdmm.webservice; +import static org.junit.Assert.fail; + + +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; import javax.xml.ws.Endpoint; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; -import de.campussource.cse.cdmm.DataModelManager; +import de.campussource.cse.cdmm.generated.DataModelManager; import de.campussource.cse.cdmm.DataModelManagerBean; import de.campussource.cse.common.test.AbstractPersistentUnitTest; +import de.campussource.cse.cdmm.generated.CourseType; +import de.campussource.cse.cdmm.generated.DataModelManagerBeanService; +import de.campussource.cse.cdmm.generated.InputEventType; +import de.campussource.cse.cdmm.generated.InputMessageType; @@ -18,7 +28,7 @@ @Before public void setup() { - DataModelManager ejb = new DataModelManagerBean(); + de.campussource.cse.cdmm.DataModelManager ejb = new DataModelManagerBean(); autowireByType(ejb); endpoint = Endpoint.publish("http://localhost:12345/cdmm", ejb); } @@ -30,7 +40,24 @@ @Test public void testWebService() { - + txBegin(); + DataModelManager dmm = new DataModelManagerBeanService().getDataModelManagerPort(); + + InputMessageType inputCourseMessage = new InputMessageType(); + CourseType course = new CourseType(); + course.setBusId("1"); + inputCourseMessage.setCourse(course); + inputCourseMessage.setInputEvent(InputEventType.CREATE_UPDATE); + try { + inputCourseMessage.setEventTime(DatatypeFactory.newInstance().newXMLGregorianCalendar("2009-05-15T15:57:48.096+02:00")); + } catch (DatatypeConfigurationException e) { + fail("setting of event time failed"); + } + + dmm.createOrUpdate(inputCourseMessage); + + txCommit(); + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |