]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/AbstractSlcJcrDao.java
Take over JCR implementation
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / AbstractSlcJcrDao.java
index 328ec10d534e18e19b4a5670979959ce1518ceba..2bf9cc64c46e2cdad9e1647ccb716334e99b5802 100644 (file)
@@ -4,24 +4,41 @@ import java.util.Calendar;
 import java.util.Date;\r
 import java.util.GregorianCalendar;\r
 \r
+import javax.jcr.RepositoryException;\r
 import javax.jcr.Session;\r
+import javax.jcr.Workspace;\r
+import javax.jcr.query.QueryManager;\r
 \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
-\r
+import org.argeo.slc.test.TestRunDescriptor;\r
 \r
 public abstract class AbstractSlcJcrDao {\r
 \r
        private Session session;\r
 \r
-       //We inject the nodeMapperProvider that define a default node mapper as an\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
        // entry point of the NodeMapper\r
        private NodeMapperProvider nodeMapperProvider;\r
 \r
-       \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
+       }\r
+\r
        public void setSession(Session session) {\r
                this.session = session;\r
        }\r
@@ -29,12 +46,12 @@ public abstract class AbstractSlcJcrDao {
        protected Session getSession() {\r
                return session;\r
        }\r
-       \r
+\r
        // IoC\r
        public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider) {\r
                this.nodeMapperProvider = nodeMapperProvider;\r
        }\r
-       \r
+\r
        // TODO : define a strategy to define basePathes\r
        protected String basePath(TestResult testResult) {\r
                Calendar cal = new GregorianCalendar();\r
@@ -42,7 +59,7 @@ public abstract class AbstractSlcJcrDao {
                // cal.setTime(slcExecution.getStartDate());\r
                return "/slc/testresult/" + JcrUtils.dateAsPath(cal) + "testresult";\r
        }\r
-       \r
+\r
        protected String basePath(SlcAgentDescriptor slcAgentDescriptor) {\r
                Calendar cal = new GregorianCalendar();\r
                cal.setTime(new Date());\r
@@ -51,9 +68,16 @@ public abstract class AbstractSlcJcrDao {
                                + JcrUtils.hostAsPath(slcAgentDescriptor.getHost() + "/agent");\r
        }\r
 \r
-       protected NodeMapperProvider getNodeMapperProvider(){\r
+       protected String basePath(TestRunDescriptor testRunDescriptor) {\r
+               Calendar cal = new GregorianCalendar();\r
+               cal.setTime(new Date());\r
+               // cal.setTime(slcExecution.getStartDate());\r
+               return "/slc/testruns/" + testRunDescriptor.getTestRunUuid()\r
+                               + "/testrun";\r
+       }\r
+\r
+       protected NodeMapperProvider getNodeMapperProvider() {\r
                return this.nodeMapperProvider;\r
        }\r
 \r
-       \r
 }\r