]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcExecutionDaoJcr.java
Improve Maven support in repo
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / SlcExecutionDaoJcr.java
index d2626f69aab058e88fed95e7e05b68bc9961e2a4..67ebefd82d1337caba584a352a77249dd9fee60c 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.argeo.slc.jcr.dao;
 
 import java.util.ArrayList;
@@ -9,39 +25,20 @@ import java.util.List;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
-import javax.jcr.Workspace;
 import javax.jcr.query.Query;
-import javax.jcr.query.QueryManager;
 import javax.jcr.query.QueryResult;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.NodeMapper;
-import org.argeo.jcr.NodeMapperProvider;
 import org.argeo.slc.SlcException;
 import org.argeo.slc.dao.process.SlcExecutionDao;
 import org.argeo.slc.process.SlcExecution;
 import org.argeo.slc.process.SlcExecutionStep;
 
-public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements SlcExecutionDao {
+public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements
+               SlcExecutionDao {
        private final static Log log = LogFactory.getLog(SlcExecutionDaoJcr.class);
-       private Workspace workspace;
-       private QueryManager queryManager;
-
-       private NodeMapper nodeMapper; 
-       private NodeMapperProvider nodeMapperProvider;
-
-       public void init() {
-               try {
-                       workspace = getSession().getWorkspace();
-                       queryManager = workspace.getQueryManager();
-                       nodeMapper = nodeMapperProvider.findNodeMapper(null);
-                       
-               } catch (RepositoryException e) {
-                       throw new SlcException("Cannot initialize DAO", e);
-               }
-       }
 
        public void addSteps(String slcExecutionId,
                        List<SlcExecutionStep> additionalSteps) {
@@ -53,15 +50,12 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements SlcExecutio
        }
 
        public void create(SlcExecution slcExecution) {
-               if (log.isDebugEnabled())
-                       log.debug("create");
-
                try {
-                       nodeMapper.save(getSession(), basePath(slcExecution),
-                                       slcExecution);
+                       nodeMapper.save(getSession(), basePath(slcExecution), slcExecution);
                        getSession().save();
-               } catch (Exception e) {
-                       throw new SlcException("Cannot create slcExecution" + slcExecution, e);
+               } catch (RepositoryException e) {
+                       throw new SlcException("Cannot create slcExecution" + slcExecution,
+                                       e);
                }
        }
 
@@ -69,37 +63,29 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements SlcExecutio
                Calendar cal = new GregorianCalendar();
                cal.setTime(new Date());
                // cal.setTime(slcExecution.getStartDate());
-               return "/slc/processes/" + JcrUtils.hostAsPath(slcExecution.getHost())
-               + '/' + JcrUtils.dateAsPath(cal) + "process";
+               String host = slcExecution.getHost();
+               if (host == null)
+                       host = "UNKOWNHOST";
+               return "/slc/processes/" + JcrUtils.hostAsPath(host) + '/'
+                               + JcrUtils.dateAsPath(cal) + "process";
        }
 
-
        public SlcExecution getSlcExecution(String uuid) {
-               if (log.isDebugEnabled())
-                       log.debug("getSlcExecution");
-
-               try {
-                       // TODO: optimize query
-                       String queryString = "//process[@uuid='" + uuid + "']";
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
-                       Node node = JcrUtils.querySingleNode(query);
-                       if (node == null)
-                               return null;
-                       return (SlcExecution) nodeMapper.load(node);
-               } catch (Exception e) {
-                       throw new SlcException("Cannot load SLC execution " + uuid, e);
-               }
+               // TODO: optimize query
+               String queryString = "//process[@uuid='" + uuid + "']";
+               Query query = createQuery(queryString, Query.XPATH);
+               Node node = JcrUtils.querySingleNode(query);
+               if (node == null)
+                       return null;
+               return (SlcExecution) nodeMapper.load(node);
        }
 
        public List<SlcExecution> listSlcExecutions() {
-               if (log.isDebugEnabled())
-                       log.debug("listSlcExecutions");
-               
                List<SlcExecution> res = new ArrayList<SlcExecution>();
                // TODO: optimize query
                String queryString = "//process";
                try {
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
+                       Query query = createQuery(queryString, Query.XPATH);
                        QueryResult qr = query.execute();
                        NodeIterator iterator = qr.getNodes();
                        while (iterator.hasNext()) {
@@ -109,7 +95,7 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements SlcExecutio
                                res.add(slcExecution);
                        }
                        return res;
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot list SLC executions", e);
                }
        }
@@ -119,24 +105,29 @@ public class SlcExecutionDaoJcr extends AbstractSlcJcrDao implements SlcExecutio
        }
 
        public void update(SlcExecution slcExecution) {
-               if (log.isDebugEnabled())
-                       log.debug("update");
-
                // TODO: optimize query
                String queryString = "//process[@uuid='" + slcExecution.getUuid()
                                + "']";
                try {
-                       Query query = queryManager.createQuery(queryString, Query.XPATH);
+                       Query query = createQuery(queryString, Query.XPATH);
                        Node node = JcrUtils.querySingleNode(query);
                        nodeMapper.update(node, slcExecution);
                        getSession().save();
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        throw new SlcException("Cannot update " + slcExecution, e);
                }
        }
 
-       //IoC
-       public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider) {
-               this.nodeMapperProvider = nodeMapperProvider;
+       public List<SlcExecutionStep> tailSteps(String slcExecutionId,
+                       Integer nbrOfSteps) {
+               log.error("Method not implemented, returning an empty list.");
+               return new ArrayList<SlcExecutionStep>();
        }
+
+       public List<SlcExecutionStep> tailSteps(String slcExecutionId,
+                       String slcExecutionStepId) {
+               log.error("Method not implemented, returning an empty list.");
+               return new ArrayList<SlcExecutionStep>();
+       }
+
 }