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%2FJcrResultListener.java;h=79e6b12a005448493b634509a57f8b91ac15ce5a;hb=659b2045881a49a5987c1e03a41e07799aeda4a8;hp=733bac7fbbd2cfbc0b1ecbf4448fab06c6f5e70d;hpb=6a5737bbf4cd63e00e61a3fd81e6673b5ad9341f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrResultListener.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrResultListener.java index 733bac7fb..79e6b12a0 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrResultListener.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrResultListener.java @@ -21,6 +21,8 @@ import org.argeo.slc.SlcException; import org.argeo.slc.core.attachment.Attachment; import org.argeo.slc.core.structure.SimpleSElement; import org.argeo.slc.core.structure.tree.TreeSPath; +import org.argeo.slc.core.test.SimpleResultPart; +import org.argeo.slc.core.test.tree.PartSubList; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.core.test.tree.TreeTestResultListener; import org.argeo.slc.jcr.SlcJcrUtils; @@ -29,7 +31,11 @@ import org.argeo.slc.jcr.SlcTypes; import org.argeo.slc.test.TestResultPart; import org.argeo.slc.test.TestStatus; -/** Persists results in JCR */ +/** + * Persists results in JCR by listening to {@link TreeTestResult}. This is to + * facilitate transition from legacy approaches and should not be used in new + * implementations. + */ public class JcrResultListener implements TreeTestResultListener, SlcNames { private final static Log log = LogFactory.getLog(JcrResultListener.class); @@ -66,7 +72,6 @@ public class JcrResultListener implements TreeTestResultListener, SlcNames { // session.save(); } // create part node - // TODO find a better name SimpleSElement element = null; if (testResult.getElements().containsKey(currentPath)) { element = (SimpleSElement) testResult.getElements().get( @@ -173,6 +178,9 @@ public class JcrResultListener implements TreeTestResultListener, SlcNames { uuidToIdentifier.remove(uuid); session.save(); + + if (log.isDebugEnabled()) + log.debug("Closed test result " + uuid); } catch (RepositoryException e) { JcrUtils.discardQuietly(session); log.error("Cannot close result " + testResult, e); @@ -224,7 +232,20 @@ public class JcrResultListener implements TreeTestResultListener, SlcNames { resultPath.length()); TreeSPath tsp = new TreeSPath(relPath); - // TODO result part + // result part + SimpleResultPart srp = new SimpleResultPart(); + if (checkNode.getProperty(SLC_SUCCESS).getBoolean()) + srp.setStatus(TestStatus.PASSED); + else if (checkNode.hasProperty(SLC_ERROR_MESSAGE)) + srp.setStatus(TestStatus.ERROR); + else + srp.setStatus(TestStatus.FAILED); + if (checkNode.hasProperty(SLC_MESSAGE)) + srp.setMessage(checkNode.getProperty(SLC_MESSAGE) + .getString()); + if (!ttr.getResultParts().containsKey(tsp)) + ttr.getResultParts().put(tsp, new PartSubList()); + ttr.getResultParts().get(tsp).getParts().add(srp); // element SimpleSElement elem = new SimpleSElement();