]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Introduce list results attributes
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 8 Dec 2008 21:46:04 +0000 (21:46 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 8 Dec 2008 21:46:04 +0000 (21:46 +0000)
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
org.argeo.slc.webapp/src/main/webapp/WEB-INF/classes/log4j.properties
runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ListResultAttributesController.java [new file with mode: 0644]
runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml
runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml
runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributes.java [new file with mode: 0644]
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/ResultAttributesList.java [new file with mode: 0644]
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ReferenceList.java

index 628f7f57e38fad6e11f169500342a2ad19ff99d8..89f1e01cc865b30dfa2d87508b41238dbf1696de 100644 (file)
                        <artifactId>com.springsource.javax.activation</artifactId>
                        <scope>test</scope>
                </dependency>
                        <artifactId>com.springsource.javax.activation</artifactId>
                        <scope>test</scope>
                </dependency>
+
+               <!-- Required in JDK 1.5 -->
+               <dependency>
+                       <groupId>com.sun.xml</groupId>
+                       <artifactId>
+                                       com.springsource.com.sun.xml.messaging.saaj
+                               </artifactId>
+               </dependency>
+
        </dependencies>
 </project>
\ No newline at end of file
        </dependencies>
 </project>
\ No newline at end of file
index 80106d6e26836c316e87214997e57d263897d8dc..93d424ffd8b9ceca68fc4beb5007f505a33ee312 100644 (file)
@@ -6,7 +6,7 @@ log4j.rootLogger=WARN, console
 log4j.logger.org.argeo.slc=WARN\r
 \r
 # Spring\r
 log4j.logger.org.argeo.slc=WARN\r
 \r
 # Spring\r
-log4j.logger.org.springframework=WARN\r
+log4j.logger.org.springframework=INFO\r
 log4j.logger.org.springframework.transaction=WARN\r
 log4j.logger.org.springframework.orm.hibernate3=WARN\r
 log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN\r
 log4j.logger.org.springframework.transaction=WARN\r
 log4j.logger.org.springframework.orm.hibernate3=WARN\r
 log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN\r
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 (file)
index 0000000..073d5cd
--- /dev/null
@@ -0,0 +1,34 @@
+package org.argeo.slc.web.mvc.result;\r
+\r
+import java.util.List;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.argeo.slc.core.test.tree.ResultAttributes;\r
+import org.argeo.slc.core.test.tree.ResultAttributesList;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.argeo.slc.web.mvc.AbstractServiceController;\r
+import org.springframework.web.servlet.ModelAndView;\r
+\r
+public class ListResultAttributesController extends AbstractServiceController {\r
+       private final TreeTestResultCollectionDao testResultCollectionDao;\r
+\r
+       public ListResultAttributesController(\r
+                       TreeTestResultCollectionDao testResultCollectionDao) {\r
+               this.testResultCollectionDao = testResultCollectionDao;\r
+       }\r
+\r
+       @Override\r
+       protected void handleServiceRequest(HttpServletRequest request,\r
+                       HttpServletResponse response, ModelAndView modelAndView)\r
+                       throws Exception {\r
+               String collectionId = request.getParameter("id");\r
+\r
+               List<ResultAttributes> resultAttributes = testResultCollectionDao\r
+                               .listResultAttributes(collectionId);\r
+\r
+               modelAndView.addObject("resultAttributesList",\r
+                               new ResultAttributesList(resultAttributes));\r
+       }\r
+}\r
index adf1bfafcfa3e1d44dfd2837acad3528f73a2ddc..a4400d2ac500e5134ab0b13baf12a6220fa68542 100644 (file)
                <constructor-arg ref="testResultCollectionDao" />
        </bean>
 
                <constructor-arg ref="testResultCollectionDao" />
        </bean>
 
-<!--
-       <bean name="/resultList.service" class="org.argeo.slc.web.mvc.result.ResultListController">
-               <constructor-arg ref="testResultDao" />
+       <bean name="/listResultAttributes.service"
+               class="org.argeo.slc.web.mvc.result.ListResultAttributesController">
+               <constructor-arg ref="testResultCollectionDao" />
        </bean>
 
        </bean>
 
-
-       <bean name="/resultCollectionView.service"
+       <!--
+               <bean name="/resultList.service"
+               class="org.argeo.slc.web.mvc.result.ResultListController">
+               <constructor-arg ref="testResultDao" /> </bean> <bean
+               name="/resultCollectionView.service"
                class="org.argeo.slc.web.mvc.result.ResultCollectionViewController">
                class="org.argeo.slc.web.mvc.result.ResultCollectionViewController">
-               <constructor-arg ref="testResultCollectionDao" />
-       </bean>
-  -->
+               <constructor-arg ref="testResultCollectionDao" /> </bean>
+       -->
        <bean id="handlerMapping"
                class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
                <property name="interceptors">
        <bean id="handlerMapping"
                class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
                <property name="interceptors">
index 9f598cd503b13fceb62008cabde929d58f35a71f..1f9e9b7b29e6f49a6af55cac55b600109952de0b 100644 (file)
@@ -3,6 +3,8 @@
 <mapping>
        <description>Message objects XML mapping</description>
 
 <mapping>
        <description>Message objects XML mapping</description>
 
+       <!-- TODO: use XML entities to factorize patterns -->
+
        <!-- BASIC -->
        <class name="org.argeo.slc.msg.ExecutionAnswer">
                <map-to ns-uri="http://argeo.org/projects/slc/schemas"
        <!-- BASIC -->
        <class name="org.argeo.slc.msg.ExecutionAnswer">
                <map-to ns-uri="http://argeo.org/projects/slc/schemas"
@@ -14,7 +16,7 @@
        <class name="org.argeo.slc.msg.ReferenceList">
                <map-to ns-uri="http://argeo.org/projects/slc/schemas"
                        ns-prefix="slc" />
        <class name="org.argeo.slc.msg.ReferenceList">
                <map-to ns-uri="http://argeo.org/projects/slc/schemas"
                        ns-prefix="slc" />
-               <field name="references" collection="vector" type="string">
+               <field name="references" collection="arraylist" type="string">
                        <bind-xml name="ref" />
                </field>
        </class>
                        <bind-xml name="ref" />
                </field>
        </class>
                </field>
        </class>
 
                </field>
        </class>
 
+       <class name="org.argeo.slc.core.test.tree.ResultAttributesList">
+               <map-to ns-uri="http://argeo.org/projects/slc/schemas"
+                       ns-prefix="slc" />
+               <field name="list" collection="arraylist"
+                       type="org.argeo.slc.core.test.tree.ResultAttributes">
+                       <bind-xml auto-naming="deriveByClass" />
+               </field>
+       </class>
+
+       <class name="org.argeo.slc.core.test.tree.ResultAttributes">
+               <map-to ns-uri="http://argeo.org/projects/slc/schemas"
+                       ns-prefix="slc" />
+               <field name="uuid" />
+               <field name="attributes" collection="hashtable">
+                       <bind-xml name="attribute" location="attributes">
+                               <class name="org.exolab.castor.mapping.MapItem">
+                                       <map-to ns-uri="http://argeo.org/projects/slc/schemas"
+                                               ns-prefix="slc" />
+                                       <field name="key" type="string">
+                                               <bind-xml name="name" node="attribute" />
+                                       </field>
+                                       <field name="value" type="string">
+                                               <bind-xml node="text" />
+                                       </field>
+                               </class>
+                       </bind-xml>
+               </field>
+       </class>
+
 
        <!-- PROCESS -->
        <class name="org.argeo.slc.msg.process.SlcExecutionStepsRequest">
 
        <!-- PROCESS -->
        <class name="org.argeo.slc.msg.process.SlcExecutionStepsRequest">
index 65fb02de27308c5065c142b2da8ce06cf9aaa405..0e44b74d5229ee2c189810a4fb7771d84dd13d35 100644 (file)
@@ -1,9 +1,11 @@
 package org.argeo.slc.hibernate.test.tree;\r
 \r
 import java.sql.SQLException;\r
 package org.argeo.slc.hibernate.test.tree;\r
 \r
 import java.sql.SQLException;\r
+import java.util.List;\r
 import java.util.SortedSet;\r
 import java.util.TreeSet;\r
 \r
 import java.util.SortedSet;\r
 import java.util.TreeSet;\r
 \r
+import org.argeo.slc.core.test.tree.ResultAttributes;\r
 import org.argeo.slc.core.test.tree.TreeTestResult;\r
 import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
 import org.argeo.slc.core.test.tree.TreeTestResult;\r
 import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
@@ -29,6 +31,7 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport
                getHibernateTemplate().update(ttrCollection);\r
        }\r
 \r
                getHibernateTemplate().update(ttrCollection);\r
        }\r
 \r
+       @SuppressWarnings("unchecked")\r
        public SortedSet<TreeTestResultCollection> listCollections() {\r
                return new TreeSet<TreeTestResultCollection>(getHibernateTemplate()\r
                                .find("from TreeTestResultCollection"));\r
        public SortedSet<TreeTestResultCollection> listCollections() {\r
                return new TreeSet<TreeTestResultCollection>(getHibernateTemplate()\r
                                .find("from TreeTestResultCollection"));\r
@@ -64,4 +67,21 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport
                });\r
        }\r
 \r
                });\r
        }\r
 \r
+       @SuppressWarnings("unchecked")\r
+       public List<ResultAttributes> listResultAttributes(String collectionId) {\r
+               List<ResultAttributes> list;\r
+               if (collectionId == null)\r
+                       list = getHibernateTemplate().find(\r
+                                       "select new org.argeo.slc.core.test.tree.ResultAttributes(ttr)"\r
+                                                       + " from TreeTestResult ttr");\r
+               else\r
+                       list = getHibernateTemplate()\r
+                                       .find(\r
+                                                       "select new org.argeo.slc.core.test.tree.ResultAttributes(ttr) "\r
+                                                                       + " from TreeTestResult ttr, TreeTestResultCollection ttrc "\r
+                                                                       + " where ttr in elements(ttrc.results) and ttrc.id=?",\r
+                                                       collectionId);\r
+\r
+               return list;\r
+       }\r
 }\r
 }\r
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 (file)
index 0000000..cd0213c
--- /dev/null
@@ -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<String, String> attributes = new Hashtable<String, String>();
+
+       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<String, String> getAttributes() {
+               return attributes;
+       }
+
+       public void setAttributes(Map<String, String> 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 (file)
index 0000000..237af48
--- /dev/null
@@ -0,0 +1,26 @@
+package org.argeo.slc.core.test.tree;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResultAttributesList {
+       private List<ResultAttributes> list = new ArrayList<ResultAttributes>();
+
+       public ResultAttributesList() {
+               super();
+       }
+
+       public ResultAttributesList(List<ResultAttributes> list) {
+               super();
+               this.list = list;
+       }
+
+       public List<ResultAttributes> getList() {
+               return list;
+       }
+
+       public void setList(List<ResultAttributes> list) {
+               this.list = list;
+       }
+
+}
index 730c9d9882d616d77e69c2649b24d3408205104e..1f04d6feee7eba2291ce8cb60e246affbc47e8be 100644 (file)
@@ -1,7 +1,9 @@
 package org.argeo.slc.dao.test.tree;\r
 \r
 package org.argeo.slc.dao.test.tree;\r
 \r
+import java.util.List;\r
 import java.util.SortedSet;\r
 \r
 import java.util.SortedSet;\r
 \r
+import org.argeo.slc.core.test.tree.ResultAttributes;\r
 import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 \r
 public interface TreeTestResultCollectionDao {\r
 import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 \r
 public interface TreeTestResultCollectionDao {\r
@@ -13,6 +15,8 @@ public interface TreeTestResultCollectionDao {
 \r
        public SortedSet<TreeTestResultCollection> listCollections();\r
 \r
 \r
        public SortedSet<TreeTestResultCollection> listCollections();\r
 \r
+       public List<ResultAttributes> listResultAttributes(String collectionId);\r
+\r
        public void addResultToCollection(TreeTestResultCollection ttrc,\r
                        String resultUuid);\r
 \r
        public void addResultToCollection(TreeTestResultCollection ttrc,\r
                        String resultUuid);\r
 \r
index 5750f2d813f9ed02c6304c1432c1bee30d09e149..44fc403e9b08a61f9f1bf3fc510505a48f4254e8 100644 (file)
@@ -1,10 +1,10 @@
 package org.argeo.slc.msg;
 
 package org.argeo.slc.msg;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
-import java.util.Vector;
 
 public class ReferenceList {
 
 public class ReferenceList {
-       private List<String> references = new Vector<String>();
+       private List<String> references = new ArrayList<String>();
 
        public List<String> getReferences() {
                return references;
 
        public List<String> getReferences() {
                return references;