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
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(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
+ 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