1 package org
.argeo
.slc
.jcr
.dao
;
3 import java
.util
.Calendar
;
5 import java
.util
.GregorianCalendar
;
7 import javax
.jcr
.RepositoryException
;
8 import javax
.jcr
.Session
;
9 import javax
.jcr
.Workspace
;
10 import javax
.jcr
.query
.QueryManager
;
12 import org
.argeo
.jcr
.JcrUtils
;
13 import org
.argeo
.jcr
.NodeMapper
;
14 import org
.argeo
.jcr
.NodeMapperProvider
;
15 import org
.argeo
.slc
.SlcException
;
16 import org
.argeo
.slc
.runtime
.SlcAgentDescriptor
;
17 import org
.argeo
.slc
.test
.TestResult
;
18 import org
.argeo
.slc
.test
.TestRunDescriptor
;
20 public abstract class AbstractSlcJcrDao
{
22 private Session session
;
24 protected Workspace workspace
;
25 protected QueryManager queryManager
;
26 protected NodeMapper nodeMapper
;
28 // We inject the nodeMapperProvider that define a default node mapper as an
29 // entry point of the NodeMapper
30 private NodeMapperProvider nodeMapperProvider
;
34 workspace
= getSession().getWorkspace();
35 queryManager
= workspace
.getQueryManager();
36 nodeMapper
= getNodeMapperProvider().findNodeMapper(null);
37 } catch (RepositoryException e
) {
38 throw new SlcException("Cannot initialize DAO", e
);
42 public void setSession(Session session
) {
43 this.session
= session
;
46 protected Session
getSession() {
51 public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider
) {
52 this.nodeMapperProvider
= nodeMapperProvider
;
55 // TODO : define a strategy to define basePathes
56 protected String
basePath(TestResult testResult
) {
57 Calendar cal
= new GregorianCalendar();
58 cal
.setTime(new Date());
59 return "/slc/testresults/" + JcrUtils
.dateAsPath(cal
) + "testresult";
62 protected String
basePath(SlcAgentDescriptor slcAgentDescriptor
) {
64 + JcrUtils
.hostAsPath(slcAgentDescriptor
.getHost()) + "/agent";
67 protected String
basePath(TestRunDescriptor testRunDescriptor
) {
68 return "/slc/testruns/" + testRunDescriptor
.getSlcExecutionUuid()
72 protected NodeMapperProvider
getNodeMapperProvider() {
73 return this.nodeMapperProvider
;