X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2Fexecution%2FJcrExecutionModulesListener.java;h=044036c0eb4e7395f6131b323c3d1d56a0416eff;hb=f78bb2a6d314add95e34691e7b43cb7655c81dda;hp=90b86f3d327549e76cb2693726795d102532e6c7;hpb=ac38932aab09592c1ec0af26c26899536dff284f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java index 90b86f3d3..044036c0e 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java @@ -16,6 +16,7 @@ import org.apache.commons.logging.LogFactory; import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.core.execution.PrimitiveSpecAttribute; +import org.argeo.slc.core.execution.PrimitiveValue; import org.argeo.slc.core.execution.RefSpecAttribute; import org.argeo.slc.core.execution.RefValueChoice; import org.argeo.slc.deploy.ModuleDescriptor; @@ -34,7 +35,7 @@ import org.argeo.slc.jcr.SlcTypes; */ public class JcrExecutionModulesListener implements ExecutionModulesListener, SlcNames { - private final static String SLC_EXECUTION_MODRULES_PROPERTY = "slc.executionModules"; + private final static String SLC_EXECUTION_MODULES_PROPERTY = "slc.executionModules"; private final static Log log = LogFactory .getLog(JcrExecutionModulesListener.class); @@ -58,7 +59,7 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, List moduleDescriptors = modulesManager .listModules(); String executionModules = System - .getProperty(SLC_EXECUTION_MODRULES_PROPERTY); + .getProperty(SLC_EXECUTION_MODULES_PROPERTY); if (executionModules != null) try { Node agentNode = session.getNode(agent.getNodePath()); @@ -207,17 +208,24 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, SlcTypes.SLC_EXECUTION_FLOW); } } + + // name, description flowNode.setProperty(SLC_NAME, efd.getName()); String[] tokens = relativePath.split("/"); - flowNode.setProperty(Property.JCR_TITLE, tokens[tokens.length - 1]); + String endName = tokens[tokens.length - 1]; if (efd.getDescription() != null - && efd.getDescription().trim().equals("")) - flowNode.setProperty(Property.JCR_DESCRIPTION, efd.getDescription()); + && !efd.getDescription().trim().equals("")) { + flowNode.setProperty(Property.JCR_TITLE, efd.getDescription()); + } else { + flowNode.setProperty(Property.JCR_TITLE, endName); + } + flowNode.setProperty(Property.JCR_DESCRIPTION, endName); // execution spec ExecutionSpec executionSpec = efd.getExecutionSpec(); String esName = executionSpec.getName(); if (!(esName == null || esName.equals(ExecutionSpec.INTERNAL_NAME))) { + // reference spec node Node executionSpecsNode = moduleNode.hasNode(SLC_EXECUTION_SPECS) ? moduleNode .getNode(SLC_EXECUTION_SPECS) : moduleNode .addNode(SLC_EXECUTION_SPECS); @@ -232,8 +240,23 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, mapExecutionSpec(executionSpecNode, executionSpec); flowNode.setProperty(SLC_SPEC, executionSpecNode); } else { + // internal spec node mapExecutionSpec(flowNode, executionSpec); } + + // values + for (String attr : efd.getValues().keySet()) { + ExecutionSpecAttribute esa = executionSpec.getAttributes() + .get(attr); + if (esa instanceof PrimitiveSpecAttribute) { + PrimitiveSpecAttribute psa = (PrimitiveSpecAttribute) esa; + Node valueNode = flowNode.addNode(attr); + valueNode.setProperty(SLC_TYPE, psa.getType()); + SlcJcrUtils.setPrimitiveAsProperty(valueNode, SLC_VALUE, + (PrimitiveValue) efd.getValues().get(attr)); + } + } + return flowNode; }