Improve Security
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 25 Apr 2010 20:11:08 +0000 (20:11 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 25 Apr 2010 20:11:08 +0000 (20:11 +0000)
Integrate Jackrabbit and Spring Security

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

25 files changed:
demo/site/org.argeo.slc.demo.log4j/log4j.properties
modules/server/org.argeo.slc.server.jcr/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.server.jcr/META-INF/spring/jcr.xml
modules/server/org.argeo.slc.server.jcr/repository.xml
modules/server/org.argeo.slc.server.jms/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml
modules/server/org.argeo.slc.server.jms/META-INF/spring/jms.xml
modules/server/org.argeo.slc.server.services/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.server.services/META-INF/spring/services-osgi.xml
modules/server/org.argeo.slc.server.services/META-INF/spring/services.xml
modules/server/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml
modules/server/org.argeo.slc.webapp.war/WEB-INF/osgi.xml
modules/server/org.argeo.slc.webapp.war/WEB-INF/security.xml
modules/server/org.argeo.slc.webapp.war/WEB-INF/web.xml
runtime/org.argeo.slc.server/pom.xml
runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/AgentServiceImpl.java
runtime/org.argeo.slc.support.activemq/pom.xml
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/AbstractSlcJcrDao.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcr.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcExecutionDaoJcr.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TestRunDescriptorDaoJcr.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TreeTestResultCollectionDaoJcr.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

index 5c44cdd99f2d1cf20e44d04545fdd17165552bba..702b59035efacc954774d7f08945e6cc4d07d925 100644 (file)
@@ -5,6 +5,8 @@ log4j.logger.org.argeo=DEBUG
 log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE
 log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG
 log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG
+log4j.logger.org.argeo.security.mvc.ArgeoRememberMeServices=WARN
+#log4j.logger.org.argeo.server.jcr.mvc.OpenSessionInViewJcrInterceptor=TRACE
 
 #log4j.logger.org.argeo.slc.web.mvc=TRACE
 #log4j.logger.org.argeo.slc.jms=TRACE
@@ -41,4 +43,4 @@ log4j.appender.console=org.apache.log4j.ConsoleAppender
 
 # console uses PatternLayout.
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c - [%t]%n
index 602a3b83fc2c9794fb19043358d4083ff8e47bd1..4202e84adf8c0025ad640de2ce8474caf5338cb7 100644 (file)
@@ -5,6 +5,8 @@ Bundle-Name: Server JCR
 Import-Package: javax.jcr,
  org.argeo.jcr,
  org.argeo.server.jackrabbit,
+ org.argeo.server.jcr;specification-version="0.1.3.SNAPSHOT-r3478",
+ org.argeo.server.jcr.mvc;specification-version="0.1.3.SNAPSHOT-r3478",
  org.argeo.slc.core.attachment,
  org.argeo.slc.core.execution,
  org.argeo.slc.core.structure,
@@ -17,7 +19,6 @@ Import-Package: javax.jcr,
  org.argeo.slc.dao.test.tree,
  org.argeo.slc.execution,
  org.argeo.slc.jcr.dao,
- org.argeo.slc.jcr.mvc,
  org.argeo.slc.process,
  org.argeo.slc.runtime;specification-version="0.12.2.SNAPSHOT-r3445",
  org.argeo.slc.test,
index ccc14fccfbb92ea1b0a46c8be57161e15d0c7915..4960138de7df1edf66e47e65131c29db3e61ae62 100644 (file)
 \r
        <bean id="slcAgentDescriptorDao" class="org.argeo.slc.jcr.dao.SlcAgentDescriptorDaoJcr"\r
                init-method="init">\r
-               <property name="session" ref="argeo.jcr.session.inMemory" />\r
+               <property name="session" ref="jcrSession" />\r
                <property name="nodeMapperProvider" ref="nodeMapperProvider" />\r
        </bean>\r
 \r
        <bean id="testRunDescriptorDao" class="org.argeo.slc.jcr.dao.TestRunDescriptorDaoJcr"\r
                init-method="init">\r
-               <property name="session" ref="argeo.jcr.session.inMemory" />\r
+               <property name="session" ref="jcrSession" />\r
                <property name="nodeMapperProvider" ref="nodeMapperProvider" />\r
        </bean>\r
 \r
        <bean id="slcExecutionDao" class="org.argeo.slc.jcr.dao.SlcExecutionDaoJcr"\r
                init-method="init">\r
-               <property name="session" ref="argeo.jcr.session.inMemory" />\r
+               <property name="session" ref="jcrSession" />\r
                <property name="nodeMapperProvider" ref="nodeMapperProvider" />\r
        </bean>\r
 \r
 \r
        <bean id="testResultDao" class="org.argeo.slc.jcr.dao.TreeTestResultDaoJcr"\r
                init-method="init">\r
-               <property name="session" ref="argeo.jcr.session.inMemory" />\r
+               <property name="session" ref="jcrSession" />\r
                <property name="nodeMapperProvider" ref="nodeMapperProvider" />\r
        </bean>\r
 \r
        <bean id="testResultCollectionDao" class="org.argeo.slc.jcr.dao.TreeTestResultCollectionDaoJcr"\r
                init-method="init">\r
-               <property name="session" ref="argeo.jcr.session.inMemory" />\r
+               <property name="session" ref="jcrSession" />\r
                <property name="nodeMapperProvider" ref="nodeMapperProvider" />\r
        </bean>\r
 \r
-       <bean id="osivInterceptor" class="org.argeo.slc.jcr.mvc.OpenSessionInViewJcrInterceptor">\r
+       <bean id="osivInterceptor"\r
+               class="org.argeo.server.jcr.mvc.OpenSessionInViewJcrInterceptor">\r
+               <property name="session" ref="jcrSession" />\r
        </bean>\r
 \r
        <!--  JCR node mappers -->\r
        <bean id="treeTestResultNodeMapper" class="org.argeo.slc.jcr.dao.TreeTestResultNodeMapper">\r
                <property name="classLoader" ref="bundleClassLoader" />\r
        </bean>\r
+       <!--\r
 \r
-       <bean id="argeo.jcr.session.inMemory" factory-bean="argeo.jcr.repository.inMemory"\r
-               factory-method="login" destroy-method="logout">\r
-               <constructor-arg>\r
-                       <bean class="javax.jcr.SimpleCredentials">\r
-                               <constructor-arg value="demo" />\r
-                               <constructor-arg value="demo" />\r
-                       </bean>\r
-               </constructor-arg>\r
+               <bean id="jcrSession" factory-bean="argeo.jcr.repository.inMemory"\r
+               factory-method="login" destroy-method="logout" scope="request">\r
+               <constructor-arg> <bean\r
+               class="org.argeo.server.jcr.security.SpringSecurityCredentials" />\r
+               </constructor-arg> </bean>\r
+       -->\r
+       <bean id="jcrSession"\r
+               class="org.argeo.jcr.ThreadBoundJcrSessionFactory">\r
+               <property name="repository" ref="jcrRepository" />\r
        </bean>\r
 \r
-       <bean id="argeo.jcr.repository.inMemory" class="org.argeo.server.jackrabbit.JackrabbitContainer">\r
+       <bean id="jcrRepository" class="org.argeo.server.jackrabbit.JackrabbitContainer">\r
                <property name="homeDirectory" value="${argeo.osgi.data.dir}/jackrabbit" />\r
                <property name="configuration" value="osgibundle:/repository.xml" />\r
        </bean>\r
index d980f8bd1f575cb3f6a0dd9ba495be19657eb959..fad0835b00f30a9b8329aef90442e3dbc6b82e3b 100644 (file)
                </AccessManager>
 
                <LoginModule
-                       class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
+                       class="org.springframework.security.providers.jaas.SecurityContextLoginModule">
                        <!--
                                anonymous user name ('anonymous' is the default value)
-                       -->
                        <param name="anonymousId" value="anonymous" />
-                       <!--
                                administrator user id (default value if param is missing is 'admin')
-                       -->
                        <param name="adminId" value="admin" />
+                       -->
                </LoginModule>
        </Security>
 
index 07f6bdfe65a40cd3129b618c6d8282b78c22ce13..69693adefccccda395b1948f7d0feee8dc1ddaef 100644 (file)
@@ -6,6 +6,8 @@ Import-Package: javax.jms,
  org.apache.activemq,
  org.apache.activemq.command,
  org.apache.commons.logging,
+ org.argeo.security;specification-version="0.1.3.SNAPSHOT-r3430",
+ org.argeo.security.core;specification-version="0.1.3.SNAPSHOT-r3430",
  org.argeo.slc.activemq,
  org.argeo.slc.core.attachment,
  org.argeo.slc.jms,
index 2bcb5b11c0b2fa93ed109829ddec904ceefe66ea..0d716087b08772b0845b53b716e6bf581e693ae5 100644 (file)
@@ -25,4 +25,6 @@
                interface="org.springframework.transaction.PlatformTransactionManager"
                bean-name="jmsTransactionManager" />
        -->
+       <reference id="securityService" interface="org.argeo.security.ArgeoSecurityService" />
+
 </beans:beans>
\ No newline at end of file
index d50dfda608be604b21fe409d1e729ae7ff4429a2..bd412575e67324ae9d1eae60154a147427477730 100644 (file)
                <!--
                        <property name="transactionManager" ref="jmsTransactionManager" />
                -->
+               <property name="taskExecutor">
+                       <bean class="org.argeo.security.core.SystemAuthenticatedTaskExecutor">
+                               <property name="securityService" ref="securityService" />
+                       </bean>
+               </property>
        </bean>
 
        <bean id="listenerAdapterCastor"
index 67211c9e7ee5b482ccdb7ffa7ca94fa54004c2e8..3ed0e9a479d5d685bb504224ed7ae9bdddee653c 100644 (file)
@@ -3,6 +3,7 @@ Bundle-Version: 0.12.2.SNAPSHOT
 Bundle-Name: SLC Server Services
 Bundle-SymbolicName: org.argeo.slc.server.services
 Import-Package: org.aopalliance.aop,
+ org.argeo.security;specification-version="0.1.3.SNAPSHOT-r3430",
  org.argeo.slc.core.attachment,
  org.argeo.slc.dao.process,
  org.argeo.slc.dao.runtime,
index af5d86f04d2f5e9cc0a8082d578ed92736988d65..87bc30dd167c692674f6d71027230601342c3eb5 100644 (file)
@@ -8,10 +8,8 @@
 
        <service ref="testManagerService" interface="org.argeo.slc.services.TestManagerService" />
        <service ref="agentService" interface="org.argeo.slc.services.AgentService" />
-       <service ref="slcExecutionService"
-               interface="org.argeo.slc.services.SlcExecutionService" />
-       <service ref="attachmentsStorage"
-               interface="org.argeo.slc.core.attachment.AttachmentsStorage" />
+       <service ref="slcExecutionService" interface="org.argeo.slc.services.SlcExecutionService" />
+       <service ref="attachmentsStorage" interface="org.argeo.slc.core.attachment.AttachmentsStorage" />
 
        <reference interface="org.argeo.slc.dao.test.tree.TreeTestResultDao"
                id="testResultDao" />
@@ -35,4 +33,6 @@
        <list id="eventPublishers" interface="org.argeo.slc.msg.event.SlcEventPublisher"
                cardinality="0..N" />
 
+       <reference id="securityService" interface="org.argeo.security.ArgeoSecurityService" />
+
 </beans:beans>
\ No newline at end of file
index e9f1745eeb65729a4de580f8eab851efbfd089e8..591e6a6d006f5d6e878046a56507495a60cb5cad 100644 (file)
                <constructor-arg ref="slcAgentDescriptorDao" />
                <constructor-arg ref="agentFactory" />
                <property name="pingCycle" value="${slc.server.services.pingCycle}" />
+               <property name="securityService" ref="securityService" />
        </bean>
 
-       <bean id="slcExecutionService"
-               class="org.argeo.slc.services.impl.SlcExecutionServiceImpl">
+       <bean id="slcExecutionService" class="org.argeo.slc.services.impl.SlcExecutionServiceImpl">
                <constructor-arg ref="slcExecutionDao" />
        </bean>
 
index f981fd3668a1c8878f181a6ff368c4192d93934c..721d073f5efe8e33c6927119115315a72cf58f0f 100644 (file)
@@ -8,6 +8,7 @@ Import-Package: net.sf.cglib.core,
  net.sf.cglib.proxy,
  net.sf.cglib.reflect,
  org.aopalliance.aop,
+ org.argeo.security.mvc;specification-version="0.1.3.SNAPSHOT-r3402",
  org.argeo.server,
  org.argeo.server.mvc,
  org.argeo.slc.build,
@@ -39,10 +40,12 @@ Import-Package: net.sf.cglib.core,
  org.springframework.osgi.web.context.support,
  org.springframework.oxm,
  org.springframework.security,
+ org.springframework.security.config;specification-version="2.0.4.A",
  org.springframework.security.context,
  org.springframework.security.providers,
  org.springframework.security.ui,
  org.springframework.security.ui.webapp,
+ org.springframework.security.userdetails;specification-version="2.0.4.A",
  org.springframework.security.userdetails.memory,
  org.springframework.transaction,
  org.springframework.web.context,
index c6c1e5534824dfb43d492f25699798de5305c2d4..7a450578faf85d6f747cc6807064f7617038a4c1 100644 (file)
                <import resource="classpath:/org/argeo/slc/server/spring/jmx.xml" />
        -->
 
-       <import resource="osgi.xml" />
+       <!--
+               security.xml has to be before osgi.xml, otherwise namespace parsing
+               fails
+       -->
        <import resource="security.xml" />
+       <import resource="osgi.xml" />
 
-       <!-- Hibernate instrumentation
-       <bean id="osivInterceptor"
+       <!--
+               Hibernate instrumentation <bean id="osivInterceptor"
                class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
-               <property name="sessionFactory" ref="sessionFactory" />
-       </bean>-->
+               <property name="sessionFactory" ref="sessionFactory" /> </bean>
+       -->
 
 
        <!--  Properties -->
                class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"
                lazy-init="false">
                <property name="contextOverride" value="true" />
-               <property name="ignoreUnresolvablePlaceholders" value="true" />
        </bean>
 
-       <!-- Web Services transactions
-       <aop:config>
-               <aop:pointcut id="epMethods"
-                       expression="execution(* org.springframework.web.servlet.mvc.Controller.handleRequest(..))" />
+       <!--
+               Web Services transactions <aop:config> <aop:pointcut id="epMethods"
+               expression="execution(*
+               org.springframework.web.servlet.mvc.Controller.handleRequest(..))" />
                <aop:advisor advice-ref="epAdvice" pointcut-ref="epMethods" />
-       </aop:config>
-
-       <tx:advice id="epAdvice" transaction-manager="hibernateTransactionManager">
-               <tx:attributes>
-                       <tx:method name="*" propagation="REQUIRED" />
-               </tx:attributes>
-       </tx:advice> -->
+               </aop:config> <tx:advice id="epAdvice"
+               transaction-manager="hibernateTransactionManager"> <tx:attributes>
+               <tx:method name="*" propagation="REQUIRED" /> </tx:attributes>
+               </tx:advice>
+       -->
 
 </beans>
\ No newline at end of file
index 5772d67be129166c279ea6f08f2e2c3e5536421d..ff56fc2723b74b4f67a5f1edab7d67a934853830 100644 (file)
@@ -63,5 +63,7 @@
        -->\r
        <reference id="_authenticationManager"\r
                interface="org.springframework.security.AuthenticationManager" />\r
+       <reference id="userDetailsService"\r
+               interface="org.springframework.security.userdetails.UserDetailsService" />\r
 \r
 </beans:beans>
\ No newline at end of file
index 245cd09086c4880993e0c6b27f5be3e7e0664ddf..9ae3de4a8cc59b0b922780f775b436a96429f373 100644 (file)
        </bean>
 
        <security:http entry-point-ref="authenticationEntryPoint">
-               <security:intercept-url pattern="**"
-                       access="ROLE_USER,ROLE_ADMIN" />
-               <!-- <security:http-basic /> -->
+               <security:intercept-url pattern="/*.service"
+                       access="ROLE_USER,ROLE_ADMIN,ROLE_ANONYMOUS" />
+               <security:anonymous username="anonymous"
+                       granted-authority="ROLE_ANONYMOUS" />
+               <security:remember-me key="argeo" services-ref="rememberMeServices" />
        </security:http>
+
+       <bean id="rememberMeServices" class="org.argeo.security.mvc.ArgeoRememberMeServices">
+               <property name="alwaysRemember" value="true" />
+               <property name="userDetailsService" ref="userDetailsService" />
+               <property name="key" value="${argeo.security.systemKey}" />
+       </bean>
+
+       <!--
+
+
+               <bean id="authenticationProcessingFilter"
+               class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter">
+               <security:custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />
+               <property name="authenticationManager" ref="_authenticationManager" />
+               <property name="authenticationFailureUrl" value="/getCredentials.ria"
+               /> <property name="defaultTargetUrl" value="/getCredentials.ria" />
+               <property name="filterProcessesUrl" value="/login.ria" /> <property
+               name="usernameParameter" value="username" /> <property
+               name="passwordParameter" value="password" /> </bean>
+       -->
 </beans>
\ No newline at end of file
index 483e3a2a1fe338a13fd7f240941a0640154f342e..ff217d5a522a419803eb610d58155eaae23a8170 100644 (file)
@@ -6,26 +6,19 @@
        <display-name>SLC Web Application</display-name>
 
        <!-- SERVICE servlet -->
-       
-       <!-- refactoring with annotation
-               
-       <servlet>
-               <servlet-name>slc-service</servlet-name>
-               <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
-               <init-param>
-                       <param-name>contextClass</param-name>
-                       <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
-               </init-param>
-               <load-on-startup>1</load-on-startup>
-       </servlet>
 
-       <servlet-mapping>
+       <!--
+               refactoring with annotation <servlet>
                <servlet-name>slc-service</servlet-name>
-               <url-pattern>*.service</url-pattern>
-       </servlet-mapping>
+               <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+               <init-param> <param-name>contextClass</param-name>
+               <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+               </init-param> <load-on-startup>1</load-on-startup> </servlet>
 
- -->
-       <servlet>
+               <servlet-mapping> <servlet-name>slc-service</servlet-name>
+               <url-pattern>*.service</url-pattern> </servlet-mapping>
+       -->
+       <servlet>
                <servlet-name>slcservice</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <init-param>
@@ -38,7 +31,7 @@
                <servlet-name>slcservice</servlet-name>
                <url-pattern>*.service</url-pattern>
        </servlet-mapping>
+
        <!-- XSLT servlet -->
        <servlet>
                <servlet-name>xslt</servlet-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
 
+       <context-param>
+               <param-name>argeo.security.systemKey</param-name>
+               <param-value>argeo</param-value>
+       </context-param>
+       
        <!--
                Log4j configContext loader config <listener>
                <display-name>Log4j</display-name>
index 96897ff94a67f3379b5e6e397a393e1a1cfd22f2..2229cddcb7bf8b17ca8d354c6c81310706345ce7 100644 (file)
                </plugins>
        </build>
        <dependencies>
+               <!-- Commons -->
+               <dependency>
+                       <groupId>org.argeo.commons.security</groupId>
+                       <artifactId>org.argeo.security.core</artifactId>
+                       <version>${version.argeo-commons}</version>
+               </dependency>
+
                <!-- SLC -->
                <dependency>
                        <groupId>org.argeo.slc.runtime</groupId>
index a27772b26ee351277d50d5e963266383d837892e..03676bf1f24e053e0d3575029d8bfc67887cc4dc 100644 (file)
@@ -5,6 +5,7 @@ import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.argeo.security.ArgeoSecurityService;
 import org.argeo.slc.dao.runtime.SlcAgentDescriptorDao;
 import org.argeo.slc.runtime.SlcAgent;
 import org.argeo.slc.runtime.SlcAgentDescriptor;
@@ -20,7 +21,9 @@ public class AgentServiceImpl implements AgentService, InitializingBean,
        private final SlcAgentDescriptorDao slcAgentDescriptorDao;
        private final SlcAgentFactory agentFactory;
 
-       private Long pingCycle = 60000l;
+       private ArgeoSecurityService securityService;
+
+       private Long pingCycle = 20000l;
 
        private Boolean pingThreadActive = true;
 
@@ -31,7 +34,9 @@ public class AgentServiceImpl implements AgentService, InitializingBean,
        }
 
        public void register(SlcAgentDescriptor slcAgentDescriptor) {
-               slcAgentDescriptorDao.create(slcAgentDescriptor);
+               if (slcAgentDescriptorDao.getAgentDescriptor(slcAgentDescriptor
+                               .getUuid()) == null)
+                       slcAgentDescriptorDao.create(slcAgentDescriptor);
                log.info("Registered agent #" + slcAgentDescriptor.getUuid());
        }
 
@@ -41,8 +46,15 @@ public class AgentServiceImpl implements AgentService, InitializingBean,
        }
 
        public void afterPropertiesSet() throws Exception {
-               if (pingCycle > 0)
-                       new PingThread().start();
+               // if (pingCycle > 0)
+               // new PingThread().start();
+               if (pingCycle > 0) {
+                       Thread authenticatedThread = new Thread(securityService
+                                       .wrapWithSystemAuthentication(new AgentsPing()),
+                                       "SLC Agents Ping");
+                       authenticatedThread.start();
+
+               }
        }
 
        public synchronized void destroy() throws Exception {
@@ -54,13 +66,17 @@ public class AgentServiceImpl implements AgentService, InitializingBean,
                this.pingCycle = pingCycle;
        }
 
-       protected class PingThread extends Thread {
+       public void setSecurityService(ArgeoSecurityService securityService) {
+               this.securityService = securityService;
+       }
+
+       protected class AgentsPing implements Runnable {
                public void run() {
 
                        // FIXME: temporary hack so that the ping starts after the server
                        // has been properly started.
                        try {
-                               Thread.sleep(5 * 1000);
+                               Thread.sleep(10 * 1000);
                        } catch (InterruptedException e1) {
                                // silent
                        }
@@ -102,4 +118,5 @@ public class AgentServiceImpl implements AgentService, InitializingBean,
                }
 
        }
+
 }
index a71a0611f36e363433c991839937c5d4d022c83b..aa4d56f819957e08c57fe457184fc1ee7f1d9b4c 100644 (file)
@@ -1,4 +1,5 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <groupId>org.argeo.slc</groupId>
                        <artifactId>org.springframework.transaction</artifactId>
                </dependency>
 
+               <!-- AOP -->
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>com.springsource.org.aspectj.weaver</artifactId>
+               </dependency>
+
                <!-- JMS -->
                <dependency>
                        <groupId>javax.jms</groupId>
index bb752a8c1aeb16793d4cc9acd32d03e22ab44281..368ef9e3c27d07ae39e634a83efc6ba042ace56c 100644 (file)
@@ -6,13 +6,12 @@ import java.util.GregorianCalendar;
 \r
 import javax.jcr.RepositoryException;\r
 import javax.jcr.Session;\r
-import javax.jcr.Workspace;\r
-import javax.jcr.query.QueryManager;\r
+import javax.jcr.query.Query;\r
 \r
+import org.argeo.ArgeoException;\r
 import org.argeo.jcr.JcrUtils;\r
 import org.argeo.jcr.NodeMapper;\r
 import org.argeo.jcr.NodeMapperProvider;\r
-import org.argeo.slc.SlcException;\r
 import org.argeo.slc.runtime.SlcAgentDescriptor;\r
 import org.argeo.slc.test.TestResult;\r
 import org.argeo.slc.test.TestRunDescriptor;\r
@@ -21,8 +20,8 @@ public abstract class AbstractSlcJcrDao {
 \r
        private Session session;\r
 \r
-       protected Workspace workspace;\r
-       protected QueryManager queryManager;\r
+       // protected Workspace workspace;\r
+       // protected QueryManager queryManager;\r
        protected NodeMapper nodeMapper;\r
 \r
        // We inject the nodeMapperProvider that define a default node mapper as an\r
@@ -30,13 +29,7 @@ public abstract class AbstractSlcJcrDao {
        private NodeMapperProvider nodeMapperProvider;\r
 \r
        public void init() {\r
-               try {\r
-                       workspace = getSession().getWorkspace();\r
-                       queryManager = workspace.getQueryManager();\r
-                       nodeMapper = getNodeMapperProvider().findNodeMapper(null);\r
-               } catch (RepositoryException e) {\r
-                       throw new SlcException("Cannot initialize DAO", e);\r
-               }\r
+               nodeMapper = getNodeMapperProvider().findNodeMapper(null);\r
        }\r
 \r
        public void setSession(Session session) {\r
@@ -73,4 +66,12 @@ public abstract class AbstractSlcJcrDao {
                return this.nodeMapperProvider;\r
        }\r
 \r
+       protected Query createQuery(String query, String type) {\r
+               try {\r
+                       return getSession().getWorkspace().getQueryManager().createQuery(\r
+                                       query, type);\r
+               } catch (RepositoryException e) {\r
+                       throw new ArgeoException("Cannot create query " + query, e);\r
+               }\r
+       }\r
 }\r
index 14c838aa7001eac9cf14eb8aad55dc6806e16f05..b592f4e357ef3339eb1e09a80dc8c6c5f16870a1 100644 (file)
@@ -5,6 +5,7 @@ import java.util.List;
 \r
 import javax.jcr.Node;\r
 import javax.jcr.NodeIterator;\r
+import javax.jcr.RepositoryException;\r
 import javax.jcr.query.Query;\r
 \r
 import org.apache.commons.logging.Log;\r
@@ -24,30 +25,26 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements
                        nodeMapper.save(getSession(), basePath(slcAgentDescriptor),\r
                                        slcAgentDescriptor);\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot import " + slcAgentDescriptor, e);\r
                }\r
        }\r
 \r
        public SlcAgentDescriptor getAgentDescriptor(String agentId) {\r
-               try {\r
-                       // TODO: optimize query\r
-                       String queryString = "//agent[@uuid='" + agentId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
-                       Node node = JcrUtils.querySingleNode(query);\r
-                       if (node == null)\r
-                               return null;\r
-                       return (SlcAgentDescriptor) nodeMapper.load(node);\r
-               } catch (Exception e) {\r
-                       throw new SlcException("Cannot load Agent Descriptor" + agentId, e);\r
-               }\r
+               // TODO: optimize query\r
+               String queryString = "//agent[@uuid='" + agentId + "']";\r
+               Query query = createQuery(queryString, Query.XPATH);\r
+               Node node = JcrUtils.querySingleNode(query);\r
+               if (node == null)\r
+                       return null;\r
+               return (SlcAgentDescriptor) nodeMapper.load(node);\r
        }\r
 \r
        public void delete(SlcAgentDescriptor slcAgentDescriptor) {\r
                try {\r
                        String queryString = "//agent[@uuid='"\r
                                        + slcAgentDescriptor.getUuid() + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node node = JcrUtils.querySingleNode(query);\r
                        if (node != null) {\r
                                node.remove();\r
@@ -55,7 +52,7 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements
                        } else\r
                                log.warn("No node found for agent descriptor: "\r
                                                + slcAgentDescriptor);\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot delete " + slcAgentDescriptor, e);\r
                }\r
 \r
@@ -65,11 +62,11 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        // TODO: optimize query\r
                        String queryString = "//agent[@uuid='" + agentId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node node = JcrUtils.querySingleNode(query);\r
                        if (node != null)\r
                                node.remove();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot find AgentDescriptor" + agentId, e);\r
                }\r
 \r
@@ -78,7 +75,7 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements
        public List<SlcAgentDescriptor> listSlcAgentDescriptors() {\r
                try {\r
                        String queryString = "//agent";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
 \r
                        List<SlcAgentDescriptor> listSad = new ArrayList<SlcAgentDescriptor>();\r
 \r
index 135f10760e91c3a73917918cd6c066b82ad63c56..ab9a1ea974fde7987fbc4b2dd4914571d3513a58 100644 (file)
@@ -8,6 +8,7 @@ import java.util.List;
 
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
 
@@ -35,7 +36,7 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
                try {
                        nodeMapper.save(getSession(), basePath(slcExecution), slcExecution);
                        getSession().save();
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot create slcExecution" + slcExecution,
                                        e);
                }
@@ -53,17 +54,13 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
        }
 
        public SlcExecution getSlcExecution(String uuid) {
-               try {
-                       // TODO: optimize query
-                       String queryString = "//process[@uuid='" + uuid + "']";
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
-                       Node node = JcrUtils.querySingleNode(query);
-                       if (node == null)
-                               return null;
-                       return (SlcExecution) nodeMapper.load(node);
-               } catch (Exception e) {
-                       throw new SlcException("Cannot load SLC execution " + uuid, e);
-               }
+               // TODO: optimize query
+               String queryString = "//process[@uuid='" + uuid + "']";
+               Query query = createQuery(queryString, Query.XPATH);
+               Node node = JcrUtils.querySingleNode(query);
+               if (node == null)
+                       return null;
+               return (SlcExecution) nodeMapper.load(node);
        }
 
        public List<SlcExecution> listSlcExecutions() {
@@ -71,7 +68,7 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
                // TODO: optimize query
                String queryString = "//process";
                try {
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
+                       Query query = createQuery(queryString, Query.XPATH);
                        QueryResult qr = query.execute();
                        NodeIterator iterator = qr.getNodes();
                        while (iterator.hasNext()) {
@@ -81,7 +78,7 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
                                res.add(slcExecution);
                        }
                        return res;
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot list SLC executions", e);
                }
        }
@@ -95,11 +92,11 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
                String queryString = "//process[@uuid='" + slcExecution.getUuid()
                                + "']";
                try {
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
+                       Query query = createQuery(queryString, Query.XPATH);
                        Node node = JcrUtils.querySingleNode(query);
                        nodeMapper.update(node, slcExecution);
                        getSession().save();
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot update " + slcExecution, e);
                }
        }
index 44db33deffad86a366ac821b64f76242f8bba05a..295f2536edb25024194c93cccb238588aeebaec7 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.slc.jcr.dao;
 
 import javax.jcr.Node;
+import javax.jcr.RepositoryException;
 import javax.jcr.query.Query;
 
 import org.argeo.jcr.JcrUtils;
@@ -12,17 +13,13 @@ public class TestRunDescriptorDaoJcr extends AbstractSlcJcrDao implements
                TestRunDescriptorDao {
 
        public TestRunDescriptor getTestRunDescriptor(String id) {
-               try {
-                       // TODO: optimize query
-                       String queryString = "//testrun[@testRunUuid='" + id + "']";
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
-                       Node node = JcrUtils.querySingleNode(query);
-                       if (node == null)
-                               return null;
-                       return (TestRunDescriptor) nodeMapper.load(node);
-               } catch (Exception e) {
-                       throw new SlcException("Cannot load test run descriptor" + id, e);
-               }
+               // TODO: optimize query
+               String queryString = "//testrun[@testRunUuid='" + id + "']";
+               Query query = createQuery(queryString, Query.XPATH);
+               Node node = JcrUtils.querySingleNode(query);
+               if (node == null)
+                       return null;
+               return (TestRunDescriptor) nodeMapper.load(node);
        }
 
        public void saveOrUpdate(TestRunDescriptor testRunDescriptor) {
@@ -30,7 +27,7 @@ public class TestRunDescriptorDaoJcr extends AbstractSlcJcrDao implements
                        nodeMapper.save(getSession(), basePath(testRunDescriptor),
                                        testRunDescriptor);
                        getSession().save();
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot import " + testRunDescriptor, e);
                }
        }
index 6daf16641600bc89618e707c7b0d18057f328e35..d7166cc037f1c04cc321efd9c49650e076d8d0fd 100644 (file)
@@ -10,9 +10,7 @@ import java.util.TreeSet;
 import javax.jcr.Node;\r
 import javax.jcr.NodeIterator;\r
 import javax.jcr.RepositoryException;\r
-import javax.jcr.query.InvalidQueryException;\r
 import javax.jcr.query.Query;\r
-import javax.jcr.query.QueryManager;\r
 \r
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
@@ -43,7 +41,7 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                                curNode.setProperty(ttrColProp, colId);\r
                        }\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot create TreeTestResultCollection "\r
                                        + ttrCollection, e);\r
                }\r
@@ -91,7 +89,7 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                        }\r
                        // We remove those who are not part of the collection anymore\r
                        String queryString = "//*[@" + ttrColProp + "='" + colId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        log.debug("Query :" + queryString);\r
                        NodeIterator ni = query.execute().getNodes();\r
                        int i = 0;\r
@@ -113,7 +111,7 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                                }\r
                        }\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot update TreeTestResultCollection "\r
                                        + ttrCollection, e);\r
                }\r
@@ -180,7 +178,7 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                        Node curNode;\r
                        queryString = "//testresult[@uuid='" + resultUuid + "' and "\r
                                        + ttrColProp + "='" + ttrc.getId() + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        curNode = JcrUtils.querySingleNode(query);\r
                        if (curNode == null) {\r
                                throw new SlcException("Cannot find test result #" + resultUuid);\r
@@ -188,7 +186,7 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                                curNode.getProperty(ttrColProp).remove();\r
                        }\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot remove TreeTestResult of Id "\r
                                        + resultUuid + " from collection " + ttrc, e);\r
                }\r
@@ -288,9 +286,9 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        if (log.isDebugEnabled())\r
                                log.debug("Retrieve nodes from query: " + query);\r
-                       Query q = queryManager.createQuery(query, Query.XPATH);\r
+                       Query q = createQuery(query, Query.XPATH);\r
                        return q.execute().getNodes();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot load nodes from query: " + query);\r
                }\r
        }\r
@@ -298,20 +296,15 @@ public class TreeTestResultCollectionDaoJcr extends AbstractSlcJcrDao implements
        private String property(Node node, String key) {\r
                try {\r
                        return node.getProperty(key).getString();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        log.warn("Cannot retrieve property " + key + " of node " + node, e);\r
                        return null;\r
                }\r
        }\r
 \r
        private Node singleNode(String query, String queryType) {\r
-               try {\r
-                       Query q = queryManager.createQuery(query, queryType);\r
+                       Query q = createQuery(query, queryType);\r
                        return JcrUtils.querySingleNode(q);\r
-               } catch (RepositoryException e) {\r
-                       throw new SlcException("Cannot retrieve single node with query "\r
-                                       + query, e);\r
-               }\r
        }\r
 \r
 }\r
index 71bdf529a02a41998a9f138fcb2ce6f96e988138..675091a5bad073fffd8ad149d0dea6dc81c6d1c5 100644 (file)
@@ -9,6 +9,7 @@ import java.util.Map;
 \r
 import javax.jcr.Node;\r
 import javax.jcr.NodeIterator;\r
+import javax.jcr.RepositoryException;\r
 import javax.jcr.Session;\r
 import javax.jcr.query.Query;\r
 import javax.jcr.query.QueryManager;\r
@@ -57,18 +58,12 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
        }\r
 \r
        public TreeTestResult getTestResult(String uuid) {\r
-\r
-               try {\r
-                       String queryString = "//testresult[@uuid='" + uuid + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
-                       Node node = JcrUtils.querySingleNode(query);\r
-                       if (node == null)\r
-                               return null;\r
-                       return (TreeTestResult) nodeMapper.load(node);\r
-\r
-               } catch (Exception e) {\r
-                       throw new SlcException("Cannot load TestResult with ID " + uuid, e);\r
-               }\r
+               String queryString = "//testresult[@uuid='" + uuid + "']";\r
+               Query query = createQuery(queryString, Query.XPATH);\r
+               Node node = JcrUtils.querySingleNode(query);\r
+               if (node == null)\r
+                       return null;\r
+               return (TreeTestResult) nodeMapper.load(node);\r
 \r
        }\r
 \r
@@ -76,7 +71,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        // TODO: optimize query\r
                        String queryString = "//testresult";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        QueryResult queryResult = query.execute();\r
                        NodeIterator nodeIterator = queryResult.getNodes();\r
                        if (nodeIterator.hasNext()) {\r
@@ -94,7 +89,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                        } else\r
                                return null;\r
 \r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot load list of TestResult ", e);\r
                }\r
        }\r
@@ -103,7 +98,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        // TODO: optimize query\r
                        String queryString = "//testresult" + path.getAsUniqueString();\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        QueryResult queryResult = query.execute();\r
                        NodeIterator nodeIterator = queryResult.getNodes();\r
                        if (nodeIterator.hasNext()) {\r
@@ -116,7 +111,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                        } else\r
                                return null;\r
 \r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot load list of TestResult ", e);\r
                }\r
        }\r
@@ -126,7 +121,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        // TODO: optimize query\r
                        String queryString = "//testresult[@uuid='" + testResultId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node resNode = JcrUtils.querySingleNode(query);\r
                        Calendar cal = new GregorianCalendar();\r
                        cal.setTime(closeDate);\r
@@ -136,7 +131,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                                log.debug("Cannot close because a node for test result # "\r
                                                + testResultId + " was not found");\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot close TestResult " + testResultId, e);\r
                }\r
 \r
@@ -158,7 +153,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                try {\r
                        // TODO: optimize query\r
                        String queryString = "//testresult[@uuid='" + testResultId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node resNode = JcrUtils.querySingleNode(query);\r
 \r
                        Node curNode;\r
@@ -251,7 +246,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                        }\r
                        getSession().save();\r
 \r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot add resultPart", e);\r
                }\r
        }\r
@@ -267,11 +262,11 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
 \r
                        // Check if attachment already exists\r
                        String queryString = "//testresult[@uuid='" + testResultId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node resNode = JcrUtils.querySingleNode(query);\r
 \r
                        queryString = ".//*[@uuid='" + attachment.getUuid() + "']";\r
-                       query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       query = createQuery(queryString, Query.XPATH);\r
                        Node atNode = JcrUtils.querySingleNode(query);\r
 \r
                        if (atNode != null) {\r
@@ -291,7 +286,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                                getSession().save();\r
                        }\r
 \r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot Add Attachment to " + testResultId,\r
                                        e);\r
                }\r
@@ -308,7 +303,7 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                                return null;\r
                        return (TreeTestResult) nodeMapper.load(node);\r
 \r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException("Cannot load TestResult with ID "\r
                                        + testResultId + " For Session " + session, e);\r
                }\r
@@ -318,14 +313,14 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                        final Map<String, String> attributes) {\r
                try {\r
                        String queryString = "//testresult[@uuid='" + testResultId + "']";\r
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);\r
+                       Query query = createQuery(queryString, Query.XPATH);\r
                        Node node = JcrUtils.querySingleNode(query);\r
 \r
                        for (String key : attributes.keySet()) {\r
                                node.setProperty(key, attributes.get(key));\r
                        }\r
                        getSession().save();\r
-               } catch (Exception e) {\r
+               } catch (RepositoryException e) {\r
                        throw new SlcException(\r
                                        "Cannot update Attributes on TestResult with ID "\r
                                                        + testResultId, e);\r
index 162e5d2f7409d0fed388f30d240e9d480ecb41a1..0599731c9e4962eb55fa5b45d77c2f6adfba480d 100644 (file)
@@ -144,10 +144,10 @@ public class TreeTestResultNodeMapper extends BeanNodeMapper {
                                                tmpNode = tmpNode.addNode(pathes[i]);
                                }
                                childNode = tmpNode;
-                               log.debug("Node created " + childNode.getPath());
+                               //log.debug("Node created " + childNode.getPath());
                        } else {
                                childNode = node.getNode(relPath);
-                               log.debug("Node already existing " + childNode.getPath());
+                               //log.debug("Node already existing " + childNode.getPath());
                        }
 
                        List<TestResultPart> list = resultParts.get(key).getParts();
@@ -314,7 +314,7 @@ public class TreeTestResultNodeMapper extends BeanNodeMapper {
                        se.setTags(tagMap);
                        elements.put(tsp, se);
                }
-               log.debug("We added " + elements.size() + " elements");
+               //log.debug("We added " + elements.size() + " elements");
 
                ttr.setElements(elements);