X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2Fdao%2FSlcAgentDescriptorDaoJcr.java;h=14c838aa7001eac9cf14eb8aad55dc6806e16f05;hb=b554c0910f6ddce935ceea5f99d399fe23af6f58;hp=91a14c0840c6572a3eeee3d280a5cabbf168591d;hpb=f0dc878635cd48403837159fc9f9a6cb555379d7;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcr.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcr.java index 91a14c084..14c838aa7 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcr.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcr.java @@ -1,22 +1,15 @@ package org.argeo.slc.jcr.dao; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; 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 org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.jcr.JcrUtils; -import org.argeo.jcr.NodeMapper; import org.argeo.slc.SlcException; import org.argeo.slc.dao.runtime.SlcAgentDescriptorDao; import org.argeo.slc.runtime.SlcAgentDescriptor; @@ -26,23 +19,7 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements private final static Log log = LogFactory .getLog(SlcAgentDescriptorDaoJcr.class); - private Workspace workspace; - private QueryManager queryManager; - private NodeMapper nodeMapper; - - public void init() { - try { - workspace = getSession().getWorkspace(); - queryManager = workspace.getQueryManager(); - nodeMapper = getNodeMapperProvider().findNodeMapper(null); - } catch (RepositoryException e) { - throw new SlcException("Cannot initialize DAO", e); - } - } - public void create(SlcAgentDescriptor slcAgentDescriptor) { - if (log.isDebugEnabled()) - log.debug("in SlcAgentDescriptorDaoJcr.create"); try { nodeMapper.save(getSession(), basePath(slcAgentDescriptor), slcAgentDescriptor); @@ -67,14 +44,24 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements } public void delete(SlcAgentDescriptor slcAgentDescriptor) { - if (log.isDebugEnabled()) - log.debug("slcAgentDescriptorDaoJcr.delete(slcAgentDescriptor)"); + try { + String queryString = "//agent[@uuid='" + + slcAgentDescriptor.getUuid() + "']"; + Query query = queryManager.createQuery(queryString, Query.XPATH); + Node node = JcrUtils.querySingleNode(query); + if (node != null) { + node.remove(); + getSession().save(); + } else + log.warn("No node found for agent descriptor: " + + slcAgentDescriptor); + } catch (Exception e) { + throw new SlcException("Cannot delete " + slcAgentDescriptor, e); + } } public void delete(String agentId) { - if (log.isDebugEnabled()) - log.debug("slcAgentDescriptorDaoJcr.delete(agentID)"); try { // TODO: optimize query String queryString = "//agent[@uuid='" + agentId + "']"; @@ -89,9 +76,6 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements } public List listSlcAgentDescriptors() { - if (log.isDebugEnabled()) - log.debug("slcAgentDescriptorDaoJcr.delete(agentID)"); - try { String queryString = "//agent"; Query query = queryManager.createQuery(queryString, Query.XPATH); @@ -101,7 +85,7 @@ public class SlcAgentDescriptorDaoJcr extends AbstractSlcJcrDao implements NodeIterator ni = query.execute().getNodes(); while (ni.hasNext()) { Node curNode = (Node) ni.next(); - JcrUtils.debug(curNode); + // JcrUtils.debug(curNode); listSad.add((SlcAgentDescriptor) nodeMapper.load(curNode)); }