]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Finalize JMS serialization
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 15 Jul 2010 11:40:43 +0000 (11:40 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 15 Jul 2010 11:40:43 +0000 (11:40 +0000)
Introduce JMS customization properties

git-svn-id: https://svn.argeo.org/slc/trunk@3701 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

18 files changed:
modules/agent/org.argeo.slc.agent.jms/META-INF/spring/common.xml
modules/agent/org.argeo.slc.agent.jms/META-INF/spring/jms.xml
modules/agent/org.argeo.slc.agent.jms/META-INF/spring/osgi.xml
modules/agent/org.argeo.slc.agent.jms/META-INF/spring/transport.xml [deleted file]
modules/agent/org.argeo.slc.agent.jms/agent.properties
modules/server/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml
modules/server/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml
modules/server/org.argeo.slc.server.activemq/activemq.properties
modules/server/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy-osgi.xml
runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java
runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultDao.java
runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxy.java
runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTreeTestResultListener.java
runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/spring.xml [deleted file]
runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TreeTestResultDaoJcr.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TreeTestResultNodeMapper.java
runtime/org.argeo.slc.support.jcr/src/test/java/org/argeo/slc/jcr/dao/TreeTestResultDaoJcrTest.java

index 5dfab09ad92bc305ecac819b7041c1fa16cf463b..324146ff9bce068ec21cf2400fd2a4b164b8de28 100644 (file)
@@ -9,8 +9,7 @@
                <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
                <property name="ignoreUnresolvablePlaceholders" value="true" />
                <property name="locations">
-                       <value>osgibundle:agent.properties
-                       </value>
+                       <value>osgibundle:agent.properties</value>
                </property>
        </bean>
 
index 3349c30125eacfbdf8d20d12b6ac1d549c38e598..78a15fee6cf6b364e34679763d07529535990eff 100644 (file)
@@ -4,63 +4,76 @@
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
        default-lazy-init="false">
 
-       <import resource="classpath:org/argeo/slc/activemq/spring.xml" />
+       <import resource="classpath:org/argeo/slc/castor/spring.xml" />
+       <import resource="classpath:org/argeo/slc/activemq/destinations.xml" />
 
-       <bean id="jmsAgent.listener.request" parent="jmsAgent.listener.template">
+       <!-- Agent implementation -->
+       <bean id="jmsAgent" class="org.argeo.slc.jms.JmsAgent">
+               <property name="agentRegister" ref="slcJms.destination.agent.register" />
+               <property name="agentUnregister" ref="slcJms.destination.agent.unregister" />
+               <property name="modulesManager" ref="modulesManager" />
+               <property name="responseDestination" ref="slcJms.destination.agent.response" />
+               <property name="jmsTemplate" ref="jmsTemplate" />
+       </bean>
+
+       <!--  Listeners -->
+       <bean id="jmsAgent.listener.request" parent="listenerTemplate">
                <property name="destination" ref="slcJms.destination.agent.request" />
                <property name="messageSelector">
                        <bean factory-bean="jmsAgent" factory-method="getMessageSelector" />
                </property>
        </bean>
 
-       <bean id="jmsAgent.attachmentUploader" class="org.argeo.slc.jms.JmsAttachmentUploader">
-               <property name="destination" ref="slcJms.destination.attachment.add" />
-               <property name="jmsTemplate" ref="jmsTemplate" />
-       </bean>
-
-       <bean id="jmsAgent.listener.pingAll" parent="jmsAgent.listener.template">
+       <bean id="jmsAgent.listener.pingAll" parent="listenerTemplate">
                <property name="destination" ref="slcJms.destination.agent.pingAll" />
                <property name="messageListener" ref="jmsAgent" />
        </bean>
 
-       <bean id="jmsAgent" class="org.argeo.slc.jms.JmsAgent">
-               <property name="agentRegister" ref="slcJms.destination.agent.register" />
-               <property name="agentUnregister" ref="slcJms.destination.agent.unregister" />
-               <property name="modulesManager" ref="modulesManager" />
-               <property name="responseDestination" ref="slcJms.destination.agent.response" />
-               <property name="jmsTemplate" ref="jmsTemplate" />
-       </bean>
-
-       <!-- TreeTestResult Listener -->
+       <!-- Services -->
        <bean id="resultListener" class="org.argeo.slc.jms.JmsTreeTestResultListener">
-               <!-- <property name="createDestination" ref="slcJms.destination.test.create" />
-               <property name="addResultPartDestination" ref="slcJms.destination.test.addResultPart" />
-               <property name="closeDestination" ref="slcJms.destination.test.close" />
--->
                <property name="executionEventDestination" ref="slcJms.destination.execution.event" />
+               <property name="onlyOnClose" value="${slc.agent.jms.resultListener.onlyOnClose}"/>
                <property name="jmsTemplate" ref="jmsTemplate" />
        </bean>
-
-       <!-- SLC Execution Listener -->
-       <bean id="slcExecutionListener" class="org.argeo.slc.jms.JmsSlcExecutionNotifier">
-               <!-- <property name="updateStatusDestination" ref="slcJms.destination.slcExecution.updateStatus" />
--->
+       <bean id="attachmentUploader" class="org.argeo.slc.jms.JmsAttachmentUploader">
+               <property name="destination" ref="slcJms.destination.attachment.add" />
                <property name="jmsTemplate" ref="jmsTemplate" />
+       </bean>
+       <bean id="slcExecutionListener" class="org.argeo.slc.jms.JmsSlcExecutionNotifier">
                <property name="executionEventDestination" ref="slcJms.destination.execution.event" />
+               <property name="jmsTemplate" ref="jmsTemplate" />
        </bean>
 
-       <!-- Common -->
+       <!-- JMS -->
        <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
-               <property name="messageConverter" ref="slcDefault.jms.castorMessageConverter" />
+               <property name="messageConverter">
+                       <bean class="org.argeo.slc.jms.MarshallerMessageConverter">
+                               <property name="disableMarshalling" value="${slc.agent.jms.disableMarshalling}" />
+                               <property name="marshaller" ref="slcDefault.castor.marshaller" />
+                               <property name="unmarshaller" ref="slcDefault.castor.marshaller" />
+                       </bean>
+               </property>
                <property name="connectionFactory" ref="jmsConnectionFactory" />
        </bean>
 
+       <bean id="jmsConnectionFactory"
+               class="org.springframework.jms.connection.CachingConnectionFactory">
+               <property name="targetConnectionFactory">
+                       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
+                               <property name="brokerURL">
+                                       <value>${slc.server.jms.url}</value>
+                               </property>
+                       </bean>
+               </property>
+       </bean>
+
        <bean id="jmsTransactionManager"
                class="org.springframework.jms.connection.JmsTransactionManager">
                <property name="connectionFactory" ref="jmsConnectionFactory" />
        </bean>
 
-       <bean id="jmsAgent.listener.template"
+       <!-- Templates -->
+       <bean id="listenerTemplate"
                class="org.springframework.jms.listener.DefaultMessageListenerContainer"
                abstract="true">
                <property name="connectionFactory" ref="jmsConnectionFactory" />
index a40763c4362d7c0f4cd9da61eed3323ef9533a11..6020ed85b2366869b95d035b7c2586b4089861f2 100644 (file)
@@ -8,6 +8,12 @@
 \r
        <bundle id="agent" action="start" symbolic-name="org.argeo.slc.agent" />\r
 \r
+       <!-- REFERENCES -->\r
+       <reference id="modulesManager"\r
+               interface="org.argeo.slc.execution.ExecutionModulesManager"\r
+               context-class-loader="service-provider" />\r
+\r
+       <!-- SERVICES -->\r
        <!-- Deprecated -->\r
        <service ref="resultListener"\r
                interface="org.argeo.slc.core.test.tree.TreeTestResultListener" />\r
@@ -15,9 +21,6 @@
 \r
        <service ref="slcExecutionListener" interface="org.argeo.slc.process.SlcExecutionNotifier" />\r
 \r
-       <service ref="jmsAgent.attachmentUploader" interface="org.argeo.slc.core.attachment.AttachmentUploader" />\r
+       <service ref="attachmentUploader" interface="org.argeo.slc.core.attachment.AttachmentUploader" />\r
 \r
-       <reference id="modulesManager"\r
-               interface="org.argeo.slc.execution.ExecutionModulesManager"\r
-               context-class-loader="service-provider" />\r
 </beans:beans>
\ No newline at end of file
diff --git a/modules/agent/org.argeo.slc.agent.jms/META-INF/spring/transport.xml b/modules/agent/org.argeo.slc.agent.jms/META-INF/spring/transport.xml
deleted file mode 100644 (file)
index 8e2c632..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
-       default-lazy-init="false">
-
-       <bean id="jmsConnectionFactory"
-               class="org.springframework.jms.connection.CachingConnectionFactory">
-               <property name="targetConnectionFactory">
-                       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                               <property name="brokerURL">
-                                       <value>${slc.server.jms.url}</value>
-                               </property>
-                       </bean>
-               </property>
-       </bean>
-
-<!-- 
-       <bean id="jmsConnectionFactory"
-               class="org.springframework.jms.connection.SingleConnectionFactory">
-               <property name="targetConnectionFactory">
-                       <bean id="slcDefault.jms.amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-                               <property name="brokerURL">
-                                       <value>${slc.server.jms.url}</value>
-                               </property>
-                       </bean>
-               </property>
-       </bean>
- -->
- <!-- 
-       <bean id="jmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
-               destroy-method="stop">
-               <property name="connectionFactory">
-                       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                               <property name="brokerURL">
-                                       <value>${slc.server.jms.url}</value>
-                               </property>
-                       </bean>
-               </property>
-       </bean>
- -->
-</beans>
\ No newline at end of file
index d1afbfa548d1a74c6e2d188b93025f403d34d348..d688a7450b7a45170ca41b3aeee52bb7440ae753 100644 (file)
@@ -1 +1,5 @@
-slc.server.jms.url=tcp://localhost:61616
\ No newline at end of file
+slc.server.jms.url=tcp://localhost:61616
+
+# Customization
+slc.agent.jms.disableMarshalling=false
+slc.agent.jms.resultListener.onlyOnClose=false
index 04869baddc6ffcf6897fc3123d5eb69234ae99f4..1c63302d2527efed81a876d94e684b4a3637f39b 100644 (file)
@@ -6,12 +6,9 @@
        http://www.springframework.org/schema/beans   \r
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
 \r
+       <!-- SERVICES -->\r
        <service ref="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />\r
 \r
-<!-- \r
-       <service ref="jmsTransactionManager"\r
-               interface="org.springframework.transaction.PlatformTransactionManager" />\r
- -->\r
        <service ref="jmsCastorMessageConverter"\r
                interface="org.springframework.jms.support.converter.MessageConverter" />\r
 \r
index b17159039c95aabf48b5896696378c43137345b4..57ad1970fa3af2070b2fb9e190599c03bbefb7cc 100644 (file)
@@ -8,8 +8,7 @@
                <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
                <property name="ignoreUnresolvablePlaceholders" value="true" />
                <property name="locations">
-                       <value>osgibundle:activemq.properties
-                       </value>
+                       <value>osgibundle:activemq.properties</value>
                </property>
        </bean>
 
                </property>
        </bean>
 
-
-       <!--
-               <bean id="jmsTransactionManager"
-               class="org.springframework.jms.connection.JmsTransactionManager">
-               <property name="connectionFactory" ref="jmsConnectionFactory" />
-               </bean>
-       -->
-
-
        <bean id="jmsCastorMessageConverter" class="org.argeo.slc.jms.MarshallerMessageConverter">
+               <property name="disableMarshalling" value="${slc.server.jms.disableMarshalling}" />
                <property name="marshaller" ref="marshaller" />
                <property name="unmarshaller" ref="unmarshaller" />
        </bean>
index d1afbfa548d1a74c6e2d188b93025f403d34d348..0e524d438ffecc5ed2212920efa7494d4a60ec53 100644 (file)
@@ -1 +1,3 @@
-slc.server.jms.url=tcp://localhost:61616
\ No newline at end of file
+slc.server.jms.url=tcp://localhost:61616
+
+slc.server.jms.disableMarshalling=false
\ No newline at end of file
index 923a6549ae70a86987a4a700aefc2515f0a96f00..874a92a808a4c47b36f6a6064ae94aefe5a1feb2 100644 (file)
@@ -1,14 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
        xsi:schemaLocation="http://www.springframework.org/schema/osgi  
        http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
        http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
-       <osgi:reference id="jmsMessageConverter"
+       <!-- REFERENCES -->
+       <reference id="jmsMessageConverter"
                interface="org.springframework.jms.support.converter.MessageConverter" />
-       <osgi:reference id="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />
+       <reference id="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />
 
-       <osgi:service ref="agentFactory" interface="org.argeo.slc.runtime.SlcAgentFactory" />
-</beans>
\ No newline at end of file
+       <!-- SERVICES -->
+       <service ref="agentFactory" interface="org.argeo.slc.runtime.SlcAgentFactory" />
+</beans:beans>
\ No newline at end of file
index eadfbef58a128ecc1f374d71744634c871b0cd9e..c27da2f76d13382c2859939b5eb4956275aa2b88 100644 (file)
@@ -20,7 +20,6 @@ import java.io.Serializable;
 import java.util.ArrayList;\r
 import java.util.Date;\r
 import java.util.List;\r
-import java.util.Map;\r
 import java.util.SortedMap;\r
 import java.util.TreeMap;\r
 import java.util.UUID;\r
@@ -61,7 +60,7 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
        private List<SimpleAttachment> attachments = new ArrayList<SimpleAttachment>();\r
 \r
        // Headers. Used to accelerate request on a specific test result.\r
-       private Map<String, String> attributes = new TreeMap<String, String>();\r
+       private SortedMap<String, String> attributes = new TreeMap<String, String>();\r
 \r
        // Runtime Data\r
        private TreeSPath currentPath;\r
@@ -271,11 +270,11 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,
                        return super.hashCode();\r
        }\r
 \r
-       public Map<String, String> getAttributes() {\r
+       public SortedMap<String, String> getAttributes() {\r
                return attributes;\r
        }\r
 \r
-       public void setAttributes(Map<String, String> attributes) {\r
+       public void setAttributes(SortedMap<String, String> attributes) {\r
                this.attributes = attributes;\r
        }\r
 \r
index 2c64b6cdffd1a00d466989efefd634e88eae4553..6ccaafaae3bdb05e272b58182062584505cc184c 100644 (file)
@@ -18,6 +18,7 @@ package org.argeo.slc.dao.test.tree;
 \r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.SortedMap;\r
 \r
 import org.argeo.slc.core.attachment.SimpleAttachment;\r
 import org.argeo.slc.core.structure.tree.TreeSPath;\r
@@ -42,7 +43,7 @@ public interface TreeTestResultDao extends TestResultDao<TreeTestResult> {
 \r
        /** Update attributes */\r
        public void updateAttributes(String testResultId,\r
-                       Map<String, String> attributes);\r
+                       SortedMap<String, String> attributes);\r
 \r
        public void addAttachment(String testResultId, SimpleAttachment attachment);\r
 }\r
index 1c8c88709c4d950e3c68ff328390efce6a64483d..2ab9a38f869b893df6e6994355c33fe0cf16772e 100644 (file)
@@ -90,8 +90,10 @@ public class JmsAgentProxy implements SlcAgent {
                        res = sendReceive(messageCreator, true);
                } finally {
                        if (log.isTraceEnabled())
-                               log.trace("Agend proxy send/receive in "
-                                               + (System.currentTimeMillis() - begin) + " ms");
+                               log.trace("To agent #" + agentUuid + " in "
+                                               + (System.currentTimeMillis() - begin) + " ms, query '"
+                                               + messageCreator.getQuery() + "', correlationId "
+                                               + messageCreator.getCorrelationId());
                }
                return res;
        }
@@ -125,11 +127,6 @@ public class JmsAgentProxy implements SlcAgent {
 
        protected void send(AgentMC messageCreator) {
                jmsTemplate.send(requestDestination, messageCreator);
-               if (log.isTraceEnabled())
-                       log.debug("Sent query '" + messageCreator.getQuery()
-                                       + "' with correlationId "
-                                       + messageCreator.getCorrelationId() + " to agent "
-                                       + agentUuid);
        }
 
        protected Object processResponse(AgentMC messageCreator,
@@ -154,10 +151,6 @@ public class JmsAgentProxy implements SlcAgent {
                        else
                                return null;
                }
-               if (log.isTraceEnabled())
-                       log.debug("Received response for query '" + query
-                                       + "' with correlationId " + correlationId + " from agent "
-                                       + agentUuid);
 
                try {
                        return fromMessage(responseMsg);
index 6b58bb8a53c32895ef6ce8c201d583a27669ea36..dc545c5eb0a3abf3083bbc62d89386bb86445823 100644 (file)
@@ -33,6 +33,7 @@ import org.argeo.slc.test.TestResultPart;
 import org.springframework.jms.JmsException;
 import org.springframework.jms.core.JmsTemplate;
 
+/** JMS based tree test result listener implementation. */
 public class JmsTreeTestResultListener implements TreeTestResultListener {
        private final Log log = LogFactory.getLog(getClass());
 
@@ -128,6 +129,7 @@ public class JmsTreeTestResultListener implements TreeTestResultListener {
 
        }
 
+       /** Publishes the test result only when it gets closed. */
        public void setOnlyOnClose(Boolean onlyOnClose) {
                this.onlyOnClose = onlyOnClose;
        }
diff --git a/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/spring.xml b/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/spring.xml
deleted file mode 100644 (file)
index 25213a9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-            http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
-       default-lazy-init="false">
-
-       <import resource="classpath:org/argeo/slc/castor/spring.xml" />
-
-       <import resource="destinations.xml" />
-
-       <bean id="slcDefault.jms.castorMessageConverter" class="org.argeo.slc.jms.MarshallerMessageConverter">
-               <property name="marshaller" ref="slcDefault.castor.marshaller" />
-               <property name="unmarshaller" ref="slcDefault.castor.marshaller" />
-       </bean>
-
-       <bean id="slcTemplate.jms.listenerAdapterCastor"
-               class="org.springframework.jms.listener.adapter.MessageListenerAdapter"
-               abstract="true">
-               <property name="messageConverter" ref="slcDefault.jms.castorMessageConverter" />
-       </bean>
-
-</beans>
\ No newline at end of file
index 5e779e2322dc030c98baab40459d0032feaf4734..68ff5fe09bfa03bb3cf0806ea5470719282ee98e 100644 (file)
@@ -20,6 +20,7 @@ import java.sql.SQLException;
 import java.util.Date;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.SortedMap;\r
 \r
 import org.argeo.slc.SlcException;\r
 import org.argeo.slc.core.attachment.SimpleAttachment;\r
@@ -154,7 +155,7 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements
        }\r
 \r
        public void updateAttributes(final String testResultId,\r
-                       final Map<String, String> attributes) {\r
+                       final SortedMap<String, String> attributes) {\r
                getHibernateTemplate().execute(new HibernateCallback() {\r
 \r
                        public Object doInHibernate(Session session)\r
index 91e3496d35867d451f9a8ae35910f650f620bc23..b0e0d5997f13f1e9dcfc1a225ce14901c11e16fb 100644 (file)
@@ -22,6 +22,7 @@ import java.util.Date;
 import java.util.GregorianCalendar;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.SortedMap;\r
 \r
 import javax.jcr.Node;\r
 import javax.jcr.NodeIterator;\r
@@ -326,7 +327,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
        }\r
 \r
        public synchronized void updateAttributes(final String testResultId,\r
-                       final Map<String, String> attributes) {\r
+                       final SortedMap<String, String> attributes) {\r
                try {\r
                        String queryString = "//testresult[@uuid='" + testResultId + "']";\r
                        Query query = createQuery(queryString, Query.XPATH);\r
index c1d55391626c6d95eed5c7fd3fc76baaa8076dc6..cc2cbe9f162925b387307712630d03ce767f5f2a 100644 (file)
@@ -36,7 +36,6 @@ import javax.jcr.query.QueryManager;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.jcr.BeanNodeMapper;
-import org.argeo.jcr.JcrUtils;
 import org.argeo.slc.core.attachment.SimpleAttachment;
 import org.argeo.slc.core.structure.SimpleSElement;
 import org.argeo.slc.core.structure.tree.TreeSPath;
@@ -240,7 +239,7 @@ public class TreeTestResultNodeMapper extends BeanNodeMapper {
                }
 
                // ATTRIBUTES
-               Map attributes = new TreeMap<String, String>();
+               SortedMap attributes = new TreeMap<String, String>();
                PropertyIterator propIt = node.getProperties();
                props: while (propIt.hasNext()) {
                        Property prop = propIt.nextProperty();
index af449c3eb74c472e7c68b048d5a6540b65f2b9f6..c8c8693337277fc728af1d9a010c3b2b9039400b 100644 (file)
@@ -17,7 +17,7 @@
 package org.argeo.slc.jcr.dao;\r
 \r
 import java.io.ByteArrayOutputStream;\r
-import java.util.Map;\r
+import java.util.SortedMap;\r
 import java.util.TreeMap;\r
 import java.util.UUID;\r
 \r
@@ -90,7 +90,7 @@ public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
                ttrDao.addResultPart(ttr.getUuid(), path, resultPart, null);\r
 \r
                // TestAdd Attribute\r
-               Map<String, String> newAtt = new TreeMap<String, String>();\r
+               SortedMap<String, String> newAtt = new TreeMap<String, String>();\r
                newAtt.put("NewTestCase", "NonSortedView");\r
                newAtt.put("NewTestCaseType", "csvdiff");\r
                ttrDao.updateAttributes(ttr.getUuid(), newAtt);\r