2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
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.
17 package org
.argeo
.slc
.jcr
.dao
;
19 import java
.util
.Calendar
;
20 import java
.util
.Date
;
21 import java
.util
.GregorianCalendar
;
23 import javax
.jcr
.NamespaceRegistry
;
24 import javax
.jcr
.RepositoryException
;
25 import javax
.jcr
.Session
;
26 import javax
.jcr
.query
.Query
;
28 import org
.argeo
.ArgeoException
;
29 import org
.argeo
.jcr
.JcrUtils
;
30 import org
.argeo
.jcr
.NodeMapper
;
31 import org
.argeo
.jcr
.NodeMapperProvider
;
32 import org
.argeo
.slc
.runtime
.SlcAgentDescriptor
;
33 import org
.argeo
.slc
.test
.TestResult
;
34 import org
.argeo
.slc
.test
.TestRunDescriptor
;
36 public abstract class AbstractSlcJcrDao
{
38 private Session session
;
40 // protected Workspace workspace;
41 // protected QueryManager queryManager;
42 protected NodeMapper nodeMapper
;
44 // We inject the nodeMapperProvider that define a default node mapper as an
45 // entry point of the NodeMapper
46 private NodeMapperProvider nodeMapperProvider
;
49 nodeMapper
= getNodeMapperProvider().findNodeMapper(null);
50 // JcrUtils.registerNamespaceSafely(session, "slc",
51 // "http://www.argeo.org/slc/0.12");
55 public void setSession(Session session
) {
56 this.session
= session
;
59 protected Session
getSession() {
64 public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider
) {
65 this.nodeMapperProvider
= nodeMapperProvider
;
68 // TODO : define a strategy to define basePathes
69 protected String
basePath(TestResult testResult
) {
70 Calendar cal
= new GregorianCalendar();
71 cal
.setTime(new Date());
72 return "/slc/testresults/" + JcrUtils
.dateAsPath(cal
) + "testresult";
75 protected String
basePath(SlcAgentDescriptor slcAgentDescriptor
) {
77 + JcrUtils
.hostAsPath(slcAgentDescriptor
.getHost()) + "/agent";
80 protected String
basePath(TestRunDescriptor testRunDescriptor
) {
81 return "/slc/testruns/" + testRunDescriptor
.getSlcExecutionUuid()
85 protected NodeMapperProvider
getNodeMapperProvider() {
86 return this.nodeMapperProvider
;
89 protected Query
createQuery(String query
, String type
) {
91 return getSession().getWorkspace().getQueryManager().createQuery(
93 } catch (RepositoryException e
) {
94 throw new ArgeoException("Cannot create query " + query
, e
);