Store SLC results in user home dir
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 9 Jul 2012 16:56:09 +0000 (16:56 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 9 Jul 2012 16:56:09 +0000 (16:56 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5430 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/JcrTestResult.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrUtils.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcNames.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrResultListener.java

index 1b9edbdc4bbaeb0c87165ead8453ce0052dfa33b..f96e88ea7fc090fadfb5488698db9d6d57e5ccf9 100644 (file)
@@ -24,6 +24,7 @@ import java.util.UUID;
 import javax.jcr.Node;
 import javax.jcr.Property;
 import javax.jcr.PropertyIterator;
+import javax.jcr.Repository;
 import javax.jcr.Session;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryManager;
@@ -41,6 +42,7 @@ import org.argeo.slc.test.TestStatus;
 public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
        /** Should only be set for an already existing result. */
        private String uuid;
+       private Repository repository;
        private Session session;
        private String resultType = SlcTypes.SLC_RESULT;
 
@@ -53,10 +55,12 @@ public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
 
        public void init() {
                try {
+                       session = repository.login();
                        if (uuid == null) {
                                // create new result
                                uuid = UUID.randomUUID().toString();
-                               String path = SlcJcrUtils.createResultPath(uuid);
+                               String path = SlcJcrUtils.createResultPath(session.getUserID(),
+                                               uuid);
                                Node resultNode = JcrUtils.mkdirs(session, path, resultType);
                                resultNode.setProperty(SLC_UUID, uuid);
                                for (String attr : attributes.keySet()) {
@@ -187,8 +191,8 @@ public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
                this.uuid = uuid;
        }
 
-       public void setSession(Session session) {
-               this.session = session;
+       public void setRepository(Repository repository) {
+               this.repository = repository;
        }
 
        public void setResultType(String resultType) {
@@ -203,8 +207,8 @@ public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
                this.attributes = attributes;
        }
 
-       public void setLogoutWhenDestroyed(Boolean logoutWhenDestroyed) {
-               this.logoutWhenDestroyed = logoutWhenDestroyed;
-       }
+//     public void setLogoutWhenDestroyed(Boolean logoutWhenDestroyed) {
+//             this.logoutWhenDestroyed = logoutWhenDestroyed;
+//     }
 
 }
index 57d8ce55c65563dbb8f22057fce32a2138235ff3..81504b77657f70689673802ddbe3613b07664047 100644 (file)
@@ -81,10 +81,10 @@ public class SlcJcrUtils implements SlcNames {
        }
 
        /** Create a new execution result path based on the current time */
-       public static String createResultPath(String uuid) {
+       public static String createResultPath(String username, String uuid) {
                Calendar now = new GregorianCalendar();
-               return SlcJcrConstants.RESULTS_BASE_PATH + '/'
-                               + JcrUtils.dateAsPath(now, true) + uuid;
+               return JcrUtils.getUserHomePath(username) + '/' + SlcNames.SLC_RESULTS
+                               + '/' + JcrUtils.dateAsPath(now, true) + uuid;
        }
 
        /**
index 0fe89c5442c48893bd0cd6d6cdf0d2e1354cb456..ba075eb6da19cb8ffe9a363e155c7c7ee3819892 100644 (file)
@@ -42,6 +42,7 @@ public interface SlcNames {
        public final static String SLC_IS_HIDDEN = "slc:isHidden";
 
        // result
+       public final static String SLC_RESULTS = "slc:results";
        public final static String SLC_SUCCESS = "slc:success";
        public final static String SLC_MESSAGE = "slc:message";
        public final static String SLC_TAG = "slc:tag";
index 068c6d8f065597fe0d4c1bb59c719db42cac5416..12ade515dcc7d772f5c49671a029747bb5b6ef69 100644 (file)
@@ -168,7 +168,7 @@ public class JcrResultListener implements TreeTestResultListener, SlcNames {
        protected Node createResultNode(TreeTestResult testResult)
                        throws RepositoryException {
                String uuid = testResult.getUuid();
-               String path = SlcJcrUtils.createResultPath(uuid);
+               String path = SlcJcrUtils.createResultPath(session.getUserID(), uuid);
                Node resultNode = JcrUtils.mkdirs(session, path, SlcTypes.SLC_RESULT);
                resultNode.setProperty(SLC_UUID, uuid);
                for (Map.Entry<String, String> entry : testResult.getAttributes()