--- /dev/null
+package org.argeo.slc.services.test;\r
+\r
+import org.argeo.slc.core.test.TestRunDescriptor;\r
+\r
+public interface TestManagerService {\r
+ public void registerTestRunDescriptor(TestRunDescriptor testRunDescriptor);\r
+\r
+ public void addResultToCollection(String collectionId, String resultUuid);\r
+\r
+ public void removeResultFromCollection(String collectionId, String resultUuid);\r
+}\r
--- /dev/null
+package org.argeo.slc.services.test.impl;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.test.TestRunDescriptor;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.process.SlcExecutionDao;\r
+import org.argeo.slc.dao.test.TestRunDescriptorDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.services.test.TestManagerService;\r
+\r
+public class TestManagerServiceImpl implements TestManagerService {\r
+ private Log log = LogFactory.getLog(getClass());\r
+\r
+ private final TreeTestResultDao treeTestResultDao;\r
+ private final TestRunDescriptorDao testRunDescriptorDao;\r
+ private final SlcExecutionDao slcExecutionDao;\r
+ private final TreeTestResultCollectionDao treeTestResultCollectionDao;\r
+\r
+ public TestManagerServiceImpl(TreeTestResultDao treeTestResultDao,\r
+ TestRunDescriptorDao testRunDescriptorDao,\r
+ SlcExecutionDao slcExecutionDao,\r
+ TreeTestResultCollectionDao treeTestResultCollectionDao) {\r
+ this.treeTestResultDao = treeTestResultDao;\r
+ this.testRunDescriptorDao = testRunDescriptorDao;\r
+ this.slcExecutionDao = slcExecutionDao;\r
+ this.treeTestResultCollectionDao = treeTestResultCollectionDao;\r
+ }\r
+\r
+ public void registerTestRunDescriptor(TestRunDescriptor testRunDescriptor) {\r
+ if (testRunDescriptor != null) {\r
+ if (log.isDebugEnabled())\r
+ log.debug("Updating test run descriptor with id "\r
+ + testRunDescriptor.getTestRunUuid());\r
+\r
+ testRunDescriptorDao.saveOrUpdate(testRunDescriptor);\r
+\r
+ // Update tree test result collection\r
+ // TODO: optimize\r
+ SlcExecution slcExecution = slcExecutionDao\r
+ .getSlcExecution(testRunDescriptor.getSlcExecutionUuid());\r
+ if (slcExecution != null) {\r
+ addResultToCollection(slcExecution.getUser(), testRunDescriptor\r
+ .getTestResultUuid());\r
+ }\r
+ }\r
+ }\r
+\r
+ public void addResultToCollection(String collectionId, String resultUuid) {\r
+ TreeTestResultCollection ttrc = treeTestResultCollectionDao\r
+ .getTestResultCollection(collectionId);\r
+ if (ttrc == null) {\r
+ ttrc = new TreeTestResultCollection(collectionId);\r
+ treeTestResultCollectionDao.create(ttrc);\r
+ }\r
+ TreeTestResult ttr = treeTestResultDao.getTestResult(resultUuid);\r
+ ttrc.getResults().add(ttr);\r
+ treeTestResultCollectionDao.update(ttrc);\r
+ }\r
+\r
+ public void removeResultFromCollection(String collectionId,\r
+ String resultUuid) {\r
+ TreeTestResultCollection ttrc = treeTestResultCollectionDao\r
+ .getTestResultCollection(collectionId);\r
+ if (ttrc != null) {\r
+ TreeTestResult ttr = treeTestResultDao.getTestResult(resultUuid);\r
+ if (ttrc.getResults().remove(ttr)) {\r
+ treeTestResultCollectionDao.update(ttrc);\r
+ }\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.services.test.TestManagerService;\r
+\r
+public class AddResultToCollectionController extends\r
+ ParameterizableViewController {\r
+ private final TestManagerService testManagerService;\r
+\r
+\r
+ public AddResultToCollectionController(TestManagerService testManagerService) {\r
+ this.testManagerService = testManagerService;\r
+ }\r
+\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ String collectionId = request.getParameter("collectionId");\r
+ String resultUuid = request.getParameter("resultUuid");\r
+\r
+ testManagerService.addResultToCollection(collectionId, resultUuid);\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.services.test.TestManagerService;\r
+\r
+public class RemoveResultFromCollectionController extends\r
+ ParameterizableViewController {\r
+ private final TestManagerService testManagerService;\r
+\r
+ public RemoveResultFromCollectionController(\r
+ TestManagerService testManagerService) {\r
+ this.testManagerService = testManagerService;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ String collectionId = request.getParameter("collectionId");\r
+ String resultUuid = request.getParameter("resultUuid");\r
+\r
+ testManagerService.removeResultFromCollection(collectionId, resultUuid);\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\r
+\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+\r
+public class ResultCollectionListController extends\r
+ ParameterizableViewController {\r
+ private final TreeTestResultCollectionDao testResultCollectionDao;\r
+\r
+ public ResultCollectionListController(\r
+ TreeTestResultCollectionDao testResultCollectionDao) {\r
+ this.testResultCollectionDao = testResultCollectionDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+ ModelAndView modelAndView = new ModelAndView();\r
+\r
+ // no need to retrieve since collection list is always in session\r
+ \r
+// SortedSet<TreeTestResultCollection> results = testResultCollectionDao\r
+// .listCollections();\r
+// modelAndView.addObject("resultCollections", results);\r
+ \r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+\r
+public class ResultCollectionViewController extends\r
+ ParameterizableViewController {\r
+ private final TreeTestResultCollectionDao testResultCollectionDao;\r
+\r
+ public ResultCollectionViewController(\r
+ TreeTestResultCollectionDao testResultCollectionDao) {\r
+ this.testResultCollectionDao = testResultCollectionDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ String id = request.getParameter("id");\r
+\r
+ TreeTestResultCollection resultCollection = testResultCollectionDao\r
+ .getTestResultCollection(id);\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+ modelAndView.addObject("resultCollection", resultCollection);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;\r
+\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+\r
+public class ResultInterceptor extends HandlerInterceptorAdapter {\r
+ private final TreeTestResultCollectionDao testResultCollectionDao;\r
+\r
+ public ResultInterceptor(TreeTestResultCollectionDao testResultCollectionDao) {\r
+ this.testResultCollectionDao = testResultCollectionDao;\r
+ }\r
+\r
+ @Override\r
+ public void postHandle(HttpServletRequest request,\r
+ HttpServletResponse response, Object handler,\r
+ ModelAndView modelAndView) throws Exception {\r
+ request.setAttribute("resultCollections", testResultCollectionDao\r
+ .listCollections());\r
+ super.postHandle(request, response, handler, modelAndView);\r
+ }\r
+\r
+}\r
package org.argeo.slc.web.mvc.result;\r
\r
-import java.util.Comparator;\r
import java.util.SortedSet;\r
import java.util.TreeSet;\r
\r
\r
ModelAndView modelAndView = new ModelAndView();\r
\r
- Comparator<TreeTestResult> comparator = new Comparator<TreeTestResult>() {\r
-\r
- public int compare(TreeTestResult arg0, TreeTestResult arg1) {\r
- if (arg0.getCloseDate() != null && arg1.getCloseDate() != null) {\r
- return -arg0.getCloseDate().compareTo(arg1.getCloseDate());\r
- } else if (arg0.getCloseDate() != null\r
- && arg1.getCloseDate() == null) {\r
- return 1;\r
- } else if (arg0.getCloseDate() == null\r
- && arg1.getCloseDate() != null) {\r
- return -1;\r
- } else {\r
- return arg0.getUuid().compareTo(arg1.getUuid());\r
- }\r
- }\r
- };\r
- SortedSet<TreeTestResult> results = new TreeSet<TreeTestResult>(\r
- comparator);\r
+ SortedSet<TreeTestResult> results = new TreeSet<TreeTestResult>();\r
results.addAll(testResultDao.listTestResults());\r
modelAndView.addObject("results", results);\r
modelAndView.setViewName(getViewName());\r
package org.argeo.slc.ws.test.tree;
+import javax.swing.plaf.basic.BasicTreeUI.TreeTraverseAction;
+
import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.process.SlcExecution;
import org.argeo.slc.core.test.TestRunDescriptor;
import org.argeo.slc.core.test.tree.PartSubList;
import org.argeo.slc.core.test.tree.TreeTestResult;
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;
+import org.argeo.slc.dao.process.SlcExecutionDao;
import org.argeo.slc.dao.test.TestRunDescriptorDao;
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;
import org.argeo.slc.dao.test.tree.TreeTestResultDao;
import org.argeo.slc.msg.test.tree.ResultPartRequest;
+import org.argeo.slc.services.test.TestManagerService;
+import org.argeo.slc.services.test.impl.TestManagerServiceImpl;
public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
private Log log = LogFactory.getLog(getClass());
private final TreeTestResultDao treeTestResultDao;
- private final TestRunDescriptorDao testRunDescriptorDao;
+ private final TestManagerService testManagerService;
public ResultPartRequestEp(TreeTestResultDao treeTestResultDao,
- TestRunDescriptorDao testRunDescriptorDao) {
+ TestManagerService testManagerService) {
this.treeTestResultDao = treeTestResultDao;
- this.testRunDescriptorDao = testRunDescriptorDao;
+ this.testManagerService = testManagerService;
}
@Override
protected Object invokeInternal(Object requestObject) throws Exception {
ResultPartRequest msg = (ResultPartRequest) requestObject;
- TestRunDescriptor testRunDescriptor = msg.getTestRunDescriptor();
- if (testRunDescriptor != null) {
- if (log.isDebugEnabled())
- log.debug("Updating test run descriptor with id "
- + testRunDescriptor.getTestRunUuid());
-
- testRunDescriptorDao.saveOrUpdate(testRunDescriptor);
- }
+ testManagerService
+ .registerTestRunDescriptor(msg.getTestRunDescriptor());
+ // if (testRunDescriptor != null) {
+ // if (log.isDebugEnabled())
+ // log.debug("Updating test run descriptor with id "
+ // + testRunDescriptor.getTestRunUuid());
+ //
+ // testRunDescriptorDao.saveOrUpdate(testRunDescriptor);
+ //
+ // // Update tree test result collection
+ // // TODO: put it in dedicated service and optimize
+ // SlcExecution slcExecution = slcExecutionDao
+ // .getSlcExecution(testRunDescriptor.getSlcExecutionUuid());
+ // if (slcExecution != null) {
+ // TreeTestResultCollection ttrc = treeTestResultCollectionDao
+ // .getTestResultCollection(slcExecution.getUser());
+ // if (ttrc == null) {
+ // ttrc = new TreeTestResultCollection(slcExecution.getUser());
+ // treeTestResultCollectionDao.create(ttrc);
+ // }
+ // TreeTestResult ttr = treeTestResultDao
+ // .getTestResult(testRunDescriptor.getTestResultUuid());
+ // ttrc.getResults().add(ttr);
+ // treeTestResultCollectionDao.update(ttrc);
+ // }
+ // }
TreeTestResult treeTestResult = treeTestResultDao.getTestResult(msg
.getResultUuid());