2 * Copyright (C) 2007-2012 Mathieu Baudier
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.jcr
.dao
;
18 import java
.util
.Calendar
;
19 import java
.util
.Date
;
20 import java
.util
.GregorianCalendar
;
22 import javax
.jcr
.NamespaceRegistry
;
23 import javax
.jcr
.RepositoryException
;
24 import javax
.jcr
.Session
;
25 import javax
.jcr
.query
.Query
;
27 import org
.argeo
.ArgeoException
;
28 import org
.argeo
.jcr
.JcrUtils
;
29 import org
.argeo
.jcr
.NodeMapper
;
30 import org
.argeo
.jcr
.NodeMapperProvider
;
31 import org
.argeo
.slc
.runtime
.SlcAgentDescriptor
;
32 import org
.argeo
.slc
.test
.TestResult
;
33 import org
.argeo
.slc
.test
.TestRunDescriptor
;
35 public abstract class AbstractSlcJcrDao
{
37 private Session session
;
39 // protected Workspace workspace;
40 // protected QueryManager queryManager;
41 protected NodeMapper nodeMapper
;
43 // We inject the nodeMapperProvider that define a default node mapper as an
44 // entry point of the NodeMapper
45 private NodeMapperProvider nodeMapperProvider
;
48 nodeMapper
= getNodeMapperProvider().findNodeMapper(null);
49 // JcrUtils.registerNamespaceSafely(session, "slc",
50 // "http://www.argeo.org/slc/0.12");
54 public void setSession(Session session
) {
55 this.session
= session
;
58 protected Session
getSession() {
63 public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider
) {
64 this.nodeMapperProvider
= nodeMapperProvider
;
67 // TODO : define a strategy to define basePathes
68 protected String
basePath(TestResult testResult
) {
69 Calendar cal
= new GregorianCalendar();
70 cal
.setTime(new Date());
71 return "/slc/testresults/" + JcrUtils
.dateAsPath(cal
) + "testresult";
74 protected String
basePath(SlcAgentDescriptor slcAgentDescriptor
) {
76 + JcrUtils
.hostAsPath(slcAgentDescriptor
.getHost()) + "/agent";
79 protected String
basePath(TestRunDescriptor testRunDescriptor
) {
80 return "/slc/testruns/" + testRunDescriptor
.getSlcExecutionUuid()
84 protected NodeMapperProvider
getNodeMapperProvider() {
85 return this.nodeMapperProvider
;
88 protected Query
createQuery(String query
, String type
) {
90 return getSession().getWorkspace().getQueryManager().createQuery(
92 } catch (RepositoryException e
) {
93 throw new ArgeoException("Cannot create query " + query
, e
);