]> 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
Improve Maven support in repo
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / AbstractSlcJcrDao.java
index 328ec10d534e18e19b4a5670979959ce1518ceba..09dce97d39c84ef3c0a943caf24c83a7222ce148 100644 (file)
@@ -1,27 +1,57 @@
+/*\r
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *         http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
 package org.argeo.slc.jcr.dao;\r
 \r
 import java.util.Calendar;\r
 import java.util.Date;\r
 import java.util.GregorianCalendar;\r
 \r
+import javax.jcr.NamespaceRegistry;\r
+import javax.jcr.RepositoryException;\r
 import javax.jcr.Session;\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.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
+               nodeMapper = getNodeMapperProvider().findNodeMapper(null);\r
+               // JcrUtils.registerNamespaceSafely(session, "slc",\r
+               // "http://www.argeo.org/slc/0.12");\r
+\r
+       }\r
+\r
        public void setSession(Session session) {\r
                this.session = session;\r
        }\r
@@ -29,31 +59,39 @@ 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
                cal.setTime(new Date());\r
-               // cal.setTime(slcExecution.getStartDate());\r
-               return "/slc/testresult/" + JcrUtils.dateAsPath(cal) + "testresult";\r
+               return "/slc/testresults/" + JcrUtils.dateAsPath(cal) + "testresult";\r
        }\r
-       \r
+\r
        protected String basePath(SlcAgentDescriptor slcAgentDescriptor) {\r
-               Calendar cal = new GregorianCalendar();\r
-               cal.setTime(new Date());\r
-               // cal.setTime(slcExecution.getStartDate());\r
                return "/slc/agents/"\r
-                               + JcrUtils.hostAsPath(slcAgentDescriptor.getHost() + "/agent");\r
+                               + JcrUtils.hostAsPath(slcAgentDescriptor.getHost()) + "/agent";\r
        }\r
 \r
-       protected NodeMapperProvider getNodeMapperProvider(){\r
+       protected String basePath(TestRunDescriptor testRunDescriptor) {\r
+               return "/slc/testruns/" + testRunDescriptor.getSlcExecutionUuid()\r
+                               + "/testrun";\r
+       }\r
+\r
+       protected NodeMapperProvider getNodeMapperProvider() {\r
                return this.nodeMapperProvider;\r
        }\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