+++ /dev/null
-/*\r
- * Copyright (C) 2007-2012 Mathieu Baudier\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
-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
-import org.argeo.slc.test.TestRunDescriptor;\r
-\r
-public abstract class AbstractSlcJcrDao {\r
-\r
- private Session session;\r
-\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
- 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
-\r
- protected Session getSession() {\r
- return session;\r
- }\r
-\r
- // IoC\r
- public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider) {\r
- this.nodeMapperProvider = nodeMapperProvider;\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
- return "/slc/testresults/" + JcrUtils.dateAsPath(cal) + "testresult";\r
- }\r
-\r
- protected String basePath(SlcAgentDescriptor slcAgentDescriptor) {\r
- return "/slc/agents/"\r
- + JcrUtils.hostAsPath(slcAgentDescriptor.getHost()) + "/agent";\r
- }\r
-\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
- 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