From eb3eadaf20ec7d75470ba4951bde2469d55bdb57 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 3 Oct 2008 09:16:42 +0000 Subject: [PATCH] Merge error management fixes from trunk -r:1685:1690 git-svn-id: https://svn.argeo.org/slc/branches/0.10@1694 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org/argeo/slc/ant/test/SlcTestTask.java | 15 +- org.argeo.slc.core/pom.xml | 2 +- .../slc/core/test/BasicTestDefinition.java | 3 + .../slc/core/test/tree/TreeTestResult.java | 6 +- .../slc/dao/test/tree/TreeTestResultDao.java | 4 + .../tree/CreateTreeTestResultRequest.java | 13 + .../slc/msg/test/tree/ResultPartRequest.java | 11 + .../org/argeo/slc/castor/msg/mapping.xml | 179 ++++--- .../org/argeo/slc/castor/test/mapping.xml | 6 +- .../core/test/spring/applicationContext.xml | 70 +-- .../main/resources/org/argeo/slc/xml/slc.xsd | 495 +++++++++--------- .../test/tree/TreeTestResultDaoHibernate.java | 18 + .../tree/CreateTreeTestResultRequestEp.java | 13 +- .../slc/ws/test/tree/ResultPartRequestEp.java | 2 + .../slc/server/spring/slc-ws-servlet.xml | 1 + .../webapp/WEB-INF/slc-jsp/resultView.jsp | 10 +- .../src/main/webapp/style.css | 12 +- 17 files changed, 483 insertions(+), 377 deletions(-) diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java index fa22269c2..66444f17e 100644 --- a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java @@ -11,11 +11,14 @@ import org.argeo.slc.core.process.SlcExecution; import org.argeo.slc.core.structure.StructureAware; import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.ExecutableTestRun; +import org.argeo.slc.core.test.SimpleResultPart; import org.argeo.slc.core.test.SimpleTestResult; import org.argeo.slc.core.test.SimpleTestRun; import org.argeo.slc.core.test.TestData; import org.argeo.slc.core.test.TestDefinition; import org.argeo.slc.core.test.TestResult; +import org.argeo.slc.core.test.TestResultPart; +import org.argeo.slc.core.test.TestStatus; import org.argeo.slc.core.test.WritableTestRun; import org.argeo.slc.spring.SpringUtils; import org.springframework.beans.BeansException; @@ -108,7 +111,17 @@ public class SlcTestTask extends SAwareTask { getRegistry(), getTreeSPath()); } - ((ExecutableTestRun) testRun).execute(); + try { + ((ExecutableTestRun) testRun).execute(); + } catch (RuntimeException e) { + if (result != null) { + SimpleResultPart errorPart = new SimpleResultPart( + TestStatus.ERROR, + "Unexpected exception when running test", e); + result.addResultPart(errorPart); + } + throw e; + } } /** diff --git a/org.argeo.slc.core/pom.xml b/org.argeo.slc.core/pom.xml index 8263e01fc..7eb32e052 100644 --- a/org.argeo.slc.core/pom.xml +++ b/org.argeo.slc.core/pom.xml @@ -71,4 +71,4 @@ junit - \ No newline at end of file + diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/BasicTestDefinition.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/BasicTestDefinition.java index 1178b41ec..4d62ba39d 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/BasicTestDefinition.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/BasicTestDefinition.java @@ -1,5 +1,6 @@ package org.argeo.slc.core.test; +import org.argeo.slc.core.SlcException; import org.argeo.slc.core.structure.tree.TreeSRelatedHelper; import org.argeo.slc.core.test.context.ContextAware; import org.argeo.slc.core.test.context.ContextUtils; @@ -31,6 +32,8 @@ public class BasicTestDefinition extends TreeSRelatedHelper implements TestData testData = testRun.getTestData(); ContextUtils.compareReachedExpected((ContextAware) testData, testRun.getTestResult(), this); + } else { + throw new SlcException("No test data defined."); } } } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index 3e365afe0..0c3eea382 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -44,7 +44,7 @@ public class TreeTestResult implements TestResult, StructureAware, private SortedMap resultParts = new TreeMap(); private SortedMap elements = new TreeMap(); - private Map attributes = new TreeMap(); + private SortedMap attributes = new TreeMap(); /** Sets the list of listeners. */ public void setListeners(List> listeners) { @@ -204,11 +204,11 @@ public class TreeTestResult implements TestResult, StructureAware, } } - public Map getAttributes() { + public SortedMap getAttributes() { return attributes; } - public void setAttributes(Map attributes) { + public void setAttributes(SortedMap attributes) { this.attributes = attributes; } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultDao.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultDao.java index 49984e114..e7582a869 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultDao.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultDao.java @@ -2,6 +2,7 @@ package org.argeo.slc.dao.test.tree; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.argeo.slc.core.structure.StructureElement; import org.argeo.slc.core.structure.tree.TreeSPath; @@ -16,4 +17,7 @@ public interface TreeTestResultDao extends TestResultDao { public void addResultPart(String testResultId, TreeSPath path, SimpleResultPart resultPart, Map relatedElements); + + public void updateAttributes(String testResultId, + SortedMap attributes); } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/CreateTreeTestResultRequest.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/CreateTreeTestResultRequest.java index e11ef0407..0bac8a821 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/CreateTreeTestResultRequest.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/CreateTreeTestResultRequest.java @@ -1,9 +1,11 @@ package org.argeo.slc.msg.test.tree; +import org.argeo.slc.core.test.TestRunDescriptor; import org.argeo.slc.core.test.tree.TreeTestResult; public class CreateTreeTestResultRequest { private TreeTestResult treeTestResult; + private TestRunDescriptor testRunDescriptor; public CreateTreeTestResultRequest() { @@ -11,6 +13,9 @@ public class CreateTreeTestResultRequest { public CreateTreeTestResultRequest(TreeTestResult treeTestResult) { this.treeTestResult = treeTestResult; + if (treeTestResult.getCurrentTestRun() != null) + testRunDescriptor = new TestRunDescriptor(treeTestResult + .getCurrentTestRun()); } public TreeTestResult getTreeTestResult() { @@ -21,6 +26,14 @@ public class CreateTreeTestResultRequest { this.treeTestResult = treeTestResult; } + public TestRunDescriptor getTestRunDescriptor() { + return testRunDescriptor; + } + + public void setTestRunDescriptor(TestRunDescriptor testRunDescriptor) { + this.testRunDescriptor = testRunDescriptor; + } + @Override public String toString() { return getClass().getSimpleName() + "#" + treeTestResult.getUuid(); diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java index 7e3750ea9..09acea56a 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java @@ -1,6 +1,7 @@ package org.argeo.slc.msg.test.tree; import java.util.Map; +import java.util.SortedMap; import org.argeo.slc.core.SlcException; import org.argeo.slc.core.structure.StructureElement; @@ -16,6 +17,7 @@ public class ResultPartRequest { private TreeSPath path; private Map relatedElements; private TestRunDescriptor testRunDescriptor; + private SortedMap attributes; public ResultPartRequest() { @@ -29,6 +31,7 @@ public class ResultPartRequest { relatedElements = ttr.getRelatedElements(this.path); if (ttr.getCurrentTestRun() != null) testRunDescriptor = new TestRunDescriptor(ttr.getCurrentTestRun()); + attributes = ttr.getAttributes(); } public ResultPartRequest(TreeTestResult ttr) { @@ -89,6 +92,14 @@ public class ResultPartRequest { this.relatedElements = relatedElements; } + public SortedMap getAttributes() { + return attributes; + } + + public void setAttributes(SortedMap attributes) { + this.attributes = attributes; + } + @Override public String toString() { return getClass().getSimpleName() + "#" + resultUuid + " " + path; diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/msg/mapping.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/msg/mapping.xml index f695f9573..98517081c 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/msg/mapping.xml +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/msg/mapping.xml @@ -1,82 +1,99 @@ - - - - Message objects XML mapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Message objects XML mapping + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/mapping.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/mapping.xml index e35450e16..f6dfbf984 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/mapping.xml +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/mapping.xml @@ -22,7 +22,7 @@ - + - + - + + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" + default-lazy-init="true"> - - + + - - + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd b/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd index 4be18ff74..5b7b43e15 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd @@ -1,254 +1,259 @@ - - - + xmlns:slc="http://argeo.org/projects/slc/schemas" + elementFormDefault="qualified" + targetNamespace="http://argeo.org/projects/slc/schemas"> + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java index 04ff23738..9cb98d1ee 100644 --- a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java +++ b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java @@ -4,6 +4,7 @@ import java.sql.SQLException; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.argeo.slc.core.SlcException; import org.argeo.slc.core.structure.StructureElement; @@ -104,4 +105,21 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements throw new SlcException("No result with id " + testResultId); return treeTestResult; } + + public void updateAttributes(final String testResultId, + final SortedMap attributes) { + getHibernateTemplate().execute(new HibernateCallback() { + + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + TreeTestResult treeTestResult = getTreeTestResult(session, + testResultId); + treeTestResult.setAttributes(attributes); + + session.update(treeTestResult); + return treeTestResult; + } + }); + } + } diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CreateTreeTestResultRequestEp.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CreateTreeTestResultRequestEp.java index 7ffa5c081..f61d86666 100644 --- a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CreateTreeTestResultRequestEp.java +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CreateTreeTestResultRequestEp.java @@ -8,6 +8,7 @@ import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.dao.test.tree.TreeTestResultDao; import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest; +import org.argeo.slc.services.test.TestManagerService; public class CreateTreeTestResultRequestEp extends AbstractMarshallingPayloadEndpoint { @@ -15,9 +16,12 @@ public class CreateTreeTestResultRequestEp extends private Log log = LogFactory.getLog(getClass()); private final TreeTestResultDao treeTestResultDao; + private final TestManagerService testManagerService; - public CreateTreeTestResultRequestEp(TreeTestResultDao treeTestResultDao) { + public CreateTreeTestResultRequestEp(TreeTestResultDao treeTestResultDao, + TestManagerService testManagerService) { this.treeTestResultDao = treeTestResultDao; + this.testManagerService = testManagerService; } @Override @@ -27,9 +31,14 @@ public class CreateTreeTestResultRequestEp extends if (log.isTraceEnabled()) log.trace("Creating result #" + treeTestResult.getUuid()); - treeTestResultDao.create(treeTestResult); + if (log.isTraceEnabled()) + log.trace("Registering test run descriptor #" + + msg.getTestRunDescriptor().getTestRunUuid()); + testManagerService + .registerTestRunDescriptor(msg.getTestRunDescriptor()); + return null; } diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java index 3dcff1949..c7d930897 100644 --- a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java @@ -37,6 +37,8 @@ public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint { treeTestResultDao.addResultPart(msg.getResultUuid(), msg.getPath(), msg .getResultPart(), msg.getRelatedElements()); + treeTestResultDao.updateAttributes(msg.getResultUuid(), msg + .getAttributes()); return null; } diff --git a/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml b/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml index b6125df19..e5300af7a 100644 --- a/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml +++ b/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml @@ -32,6 +32,7 @@ + diff --git a/org.argeo.slc.webapp/src/main/webapp/WEB-INF/slc-jsp/resultView.jsp b/org.argeo.slc.webapp/src/main/webapp/WEB-INF/slc-jsp/resultView.jsp index b3141a788..08c87a72f 100644 --- a/org.argeo.slc.webapp/src/main/webapp/WEB-INF/slc-jsp/resultView.jsp +++ b/org.argeo.slc.webapp/src/main/webapp/WEB-INF/slc-jsp/resultView.jsp @@ -37,10 +37,14 @@ - - ${part.message} + + ${part.message} + +
${part.exceptionMessage}
+
+ - + test run diff --git a/org.argeo.slc.webapp/src/main/webapp/style.css b/org.argeo.slc.webapp/src/main/webapp/style.css index a5631934a..102b4eea1 100644 --- a/org.argeo.slc.webapp/src/main/webapp/style.css +++ b/org.argeo.slc.webapp/src/main/webapp/style.css @@ -80,10 +80,14 @@ td { color: green; } -.failed { - color: red; -} - +.failed { + color: red; +} + +.error { + color: purple; +} + /**************** Navigation ****************/ td.nav1 { padding: 5px 0px 0px 0px; -- 2.39.2