From 9806e512313b8fd28f0fa0874300b04e90fcc43d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 8 Dec 2008 21:46:04 +0000 Subject: [PATCH] Introduce list results attributes ASSIGNED - bug 71: Extend capabilities of web services https://www.argeo.org/bugzilla/show_bug.cgi?id=71 git-svn-id: https://svn.argeo.org/slc/trunk@1967 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- org.argeo.slc.webapp/pom.xml | 9 +++++ .../webapp/WEB-INF/classes/log4j.properties | 2 +- .../ListResultAttributesController.java | 34 ++++++++++++++++++ .../slc/server/spring/slc-service-servlet.xml | 18 +++++----- .../resources/org/argeo/slc/castor/msg.xml | 33 ++++++++++++++++- .../TreeTestResultCollectionDaoHibernate.java | 20 +++++++++++ .../slc/core/test/tree/ResultAttributes.java | 36 +++++++++++++++++++ .../core/test/tree/ResultAttributesList.java | 26 ++++++++++++++ .../tree/TreeTestResultCollectionDao.java | 4 +++ .../java/org/argeo/slc/msg/ReferenceList.java | 4 +-- 10 files changed, 174 insertions(+), 12 deletions(-) create mode 100644 runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ListResultAttributesController.java create mode 100644 runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributes.java create mode 100644 runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributesList.java diff --git a/org.argeo.slc.webapp/pom.xml b/org.argeo.slc.webapp/pom.xml index 628f7f57e..89f1e01cc 100644 --- a/org.argeo.slc.webapp/pom.xml +++ b/org.argeo.slc.webapp/pom.xml @@ -175,5 +175,14 @@ com.springsource.javax.activation test + + + + com.sun.xml + + com.springsource.com.sun.xml.messaging.saaj + + + \ No newline at end of file diff --git a/org.argeo.slc.webapp/src/main/webapp/WEB-INF/classes/log4j.properties b/org.argeo.slc.webapp/src/main/webapp/WEB-INF/classes/log4j.properties index 80106d6e2..93d424ffd 100644 --- a/org.argeo.slc.webapp/src/main/webapp/WEB-INF/classes/log4j.properties +++ b/org.argeo.slc.webapp/src/main/webapp/WEB-INF/classes/log4j.properties @@ -6,7 +6,7 @@ log4j.rootLogger=WARN, console log4j.logger.org.argeo.slc=WARN # Spring -log4j.logger.org.springframework=WARN +log4j.logger.org.springframework=INFO log4j.logger.org.springframework.transaction=WARN log4j.logger.org.springframework.orm.hibernate3=WARN log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ListResultAttributesController.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ListResultAttributesController.java new file mode 100644 index 000000000..073d5cda4 --- /dev/null +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ListResultAttributesController.java @@ -0,0 +1,34 @@ +package org.argeo.slc.web.mvc.result; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.argeo.slc.core.test.tree.ResultAttributes; +import org.argeo.slc.core.test.tree.ResultAttributesList; +import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao; +import org.argeo.slc.web.mvc.AbstractServiceController; +import org.springframework.web.servlet.ModelAndView; + +public class ListResultAttributesController extends AbstractServiceController { + private final TreeTestResultCollectionDao testResultCollectionDao; + + public ListResultAttributesController( + TreeTestResultCollectionDao testResultCollectionDao) { + this.testResultCollectionDao = testResultCollectionDao; + } + + @Override + protected void handleServiceRequest(HttpServletRequest request, + HttpServletResponse response, ModelAndView modelAndView) + throws Exception { + String collectionId = request.getParameter("id"); + + List resultAttributes = testResultCollectionDao + .listResultAttributes(collectionId); + + modelAndView.addObject("resultAttributesList", + new ResultAttributesList(resultAttributes)); + } +} diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml index adf1bfafc..a4400d2ac 100644 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml +++ b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml @@ -24,17 +24,19 @@ - + + --> diff --git a/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml b/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml index 9f598cd50..1f9e9b7b2 100644 --- a/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml +++ b/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml @@ -3,6 +3,8 @@ Message objects XML mapping + + - + @@ -77,6 +79,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java index 65fb02de2..0e44b74d5 100644 --- a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java +++ b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java @@ -1,9 +1,11 @@ package org.argeo.slc.hibernate.test.tree; import java.sql.SQLException; +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; +import org.argeo.slc.core.test.tree.ResultAttributes; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.core.test.tree.TreeTestResultCollection; import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao; @@ -29,6 +31,7 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport getHibernateTemplate().update(ttrCollection); } + @SuppressWarnings("unchecked") public SortedSet listCollections() { return new TreeSet(getHibernateTemplate() .find("from TreeTestResultCollection")); @@ -64,4 +67,21 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport }); } + @SuppressWarnings("unchecked") + public List listResultAttributes(String collectionId) { + List list; + if (collectionId == null) + list = getHibernateTemplate().find( + "select new org.argeo.slc.core.test.tree.ResultAttributes(ttr)" + + " from TreeTestResult ttr"); + else + list = getHibernateTemplate() + .find( + "select new org.argeo.slc.core.test.tree.ResultAttributes(ttr) " + + " from TreeTestResult ttr, TreeTestResultCollection ttrc " + + " where ttr in elements(ttrc.results) and ttrc.id=?", + collectionId); + + return list; + } } diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributes.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributes.java new file mode 100644 index 000000000..cd0213ca7 --- /dev/null +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributes.java @@ -0,0 +1,36 @@ +package org.argeo.slc.core.test.tree; + +import java.util.Hashtable; +import java.util.Map; + +public class ResultAttributes { + private String uuid = null; + private Map attributes = new Hashtable(); + + public ResultAttributes() { + super(); + } + + public ResultAttributes(TreeTestResult ttr) { + super(); + this.uuid = ttr.getUuid(); + this.attributes = ttr.getAttributes(); + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + +} diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributesList.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributesList.java new file mode 100644 index 000000000..237af48b5 --- /dev/null +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributesList.java @@ -0,0 +1,26 @@ +package org.argeo.slc.core.test.tree; + +import java.util.ArrayList; +import java.util.List; + +public class ResultAttributesList { + private List list = new ArrayList(); + + public ResultAttributesList() { + super(); + } + + public ResultAttributesList(List list) { + super(); + this.list = list; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + +} diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java index 730c9d988..1f04d6fee 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java @@ -1,7 +1,9 @@ package org.argeo.slc.dao.test.tree; +import java.util.List; import java.util.SortedSet; +import org.argeo.slc.core.test.tree.ResultAttributes; import org.argeo.slc.core.test.tree.TreeTestResultCollection; public interface TreeTestResultCollectionDao { @@ -13,6 +15,8 @@ public interface TreeTestResultCollectionDao { public SortedSet listCollections(); + public List listResultAttributes(String collectionId); + public void addResultToCollection(TreeTestResultCollection ttrc, String resultUuid); diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ReferenceList.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ReferenceList.java index 5750f2d81..44fc403e9 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ReferenceList.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ReferenceList.java @@ -1,10 +1,10 @@ package org.argeo.slc.msg; +import java.util.ArrayList; import java.util.List; -import java.util.Vector; public class ReferenceList { - private List references = new Vector(); + private List references = new ArrayList(); public List getReferences() { return references; -- 2.39.2