--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>\r
+ <classpathentry kind="src" output="target/classes" path="src/main/resources"/>\r
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>\r
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
+ <classpathentry kind="output" path="target/classes"/>\r
+</classpath>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>org.argeo.slc.server</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ <buildCommand>\r
+ <name>org.eclipse.jdt.core.javabuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.maven.ide.eclipse.maven2Builder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>org.eclipse.jdt.core.javanature</nature>\r
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
+ </natures>\r
+</projectDescription>\r
--- /dev/null
+#Fri Aug 29 11:25:17 CEST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
--- /dev/null
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.argeo.slc</groupId>
+ <artifactId>argeo-slc</artifactId>
+ <version>0.11.2-SNAPSHOT</version>
+ <relativePath>../org.argeo.slc</relativePath>
+ </parent>
+ <artifactId>org.argeo.slc.server</artifactId>
+ <name>Argeo SLC Server</name>
+ <description>SLC Server</description>
+ <build>
+ <plugins>
+ <!-- Look to parent pom for inheritances -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Export-Package>
+ org.argeo.slc.*
+ </Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <configuration>
+ <webAppSourceDirectory>
+ ../org.argeo.slc.webapp/src/main/webapp
+ </webAppSourceDirectory>
+ <jettyConfig>
+ ../org.argeo.slc.webapp/src/main/config/jetty/jetty-test.xml
+ </jettyConfig>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.argeo.slc</groupId>
+ <artifactId>org.argeo.slc.core</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.argeo.slc</groupId>
+ <artifactId>org.argeo.slc.hibernate</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>
+ com.springsource.javax.servlet.jsp.jstl
+ </artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.taglibs</groupId>
+ <artifactId>
+ com.springsource.org.apache.taglibs.standard
+ </artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>com.springsource.javax.servlet</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.ws</groupId>
+ <artifactId>org.springframework.ws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>org.springframework.web.servlet</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>org.springframework.aop</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>com.springsource.org.aspectj.weaver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.jexcelapi</groupId>
+ <artifactId>com.springsource.jxl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.lowagie.text</groupId>
+ <artifactId>com.springsource.com.lowagie.text</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.wsdl</groupId>
+ <artifactId>com.springsource.javax.wsdl</artifactId>
+ </dependency>
+
+ </dependencies>
+</project>
--- /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,\r
+ 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
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.test.TestRunDescriptor;\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
+ testRunDescriptorDao.saveOrUpdate(testRunDescriptor);\r
+\r
+ // Update tree test result collection\r
+ // TODO: optimize\r
+\r
+ if (testRunDescriptor.getSlcExecutionUuid() != null) {\r
+ SlcExecution slcExecution = slcExecutionDao\r
+ .getSlcExecution(testRunDescriptor\r
+ .getSlcExecutionUuid());\r
+ if (slcExecution != null) {\r
+ String collectionId = slcExecution.getUser() != null ? slcExecution\r
+ .getUser()\r
+ : "default";\r
+ addResultToCollection(collectionId, testRunDescriptor\r
+ .getTestResultUuid());\r
+ }\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
+ treeTestResultCollectionDao.addResultToCollection(ttrc, resultUuid);\r
+ }\r
+\r
+ public void removeResultFromCollection(String collectionId,\r
+ String resultUuid) {\r
+ TreeTestResultCollection ttrc = treeTestResultCollectionDao\r
+ .getTestResultCollection(collectionId);\r
+ if (ttrc != null) {\r
+ treeTestResultCollectionDao.removeResultFromCollection(ttrc,\r
+ resultUuid);\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc;\r
+\r
+import javax.xml.parsers.DocumentBuilderFactory;\r
+import javax.xml.transform.Source;\r
+import javax.xml.transform.dom.DOMResult;\r
+import javax.xml.transform.dom.DOMSource;\r
+\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.web.servlet.view.xslt.XsltView;\r
+import org.w3c.dom.Document;\r
+\r
+public class XsltMarshallerView extends XsltView {\r
+\r
+ private Marshaller marshaller;\r
+\r
+ @Override\r
+ protected Class<?>[] getSourceTypes() {\r
+ return new Class[] { TreeTestResult.class,\r
+ TreeTestResultCollection.class, SlcExecution.class };\r
+ }\r
+\r
+ @Override\r
+ protected Source convertSource(Object source) throws Exception {\r
+ Document document = DocumentBuilderFactory.newInstance()\r
+ .newDocumentBuilder().newDocument();\r
+ DOMResult result = new DOMResult(document);\r
+ if (!marshaller.supports(source.getClass()))\r
+ throw new SlcException("Object of type " + source.getClass()\r
+ + " not supported.");\r
+ marshaller.marshal(source, result);\r
+ return new DOMSource(result.getNode());\r
+ }\r
+\r
+ public void setMarshaller(Marshaller marshaller) {\r
+ this.marshaller = marshaller;\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc;\r
+\r
+import java.io.IOException;\r
+import java.util.Map;\r
+import java.util.TreeMap;\r
+\r
+import javax.xml.transform.Source;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.URIResolver;\r
+import javax.xml.transform.stream.StreamSource;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.core.SlcException;\r
+import org.springframework.core.io.Resource;\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.web.servlet.view.AbstractUrlBasedView;\r
+import org.springframework.web.servlet.view.xslt.XsltViewResolver;\r
+\r
+public class XsltMarshallerViewResolver extends XsltViewResolver implements\r
+ URIResolver {\r
+ private final static Log log = LogFactory\r
+ .getLog(XsltMarshallerViewResolver.class);\r
+\r
+ private Marshaller marshaller;\r
+ private Map<String, Source> cacheUriResolver = new TreeMap<String, Source>();\r
+\r
+ public XsltMarshallerViewResolver() {\r
+ setUriResolver(this);\r
+ }\r
+\r
+ @Override\r
+ protected AbstractUrlBasedView buildView(String viewName) throws Exception {\r
+ AbstractUrlBasedView viewT = super.buildView(viewName);\r
+ XsltMarshallerView view = (XsltMarshallerView) viewT;\r
+ view.setMarshaller(marshaller);\r
+ return view;\r
+ }\r
+\r
+ public void setMarshaller(Marshaller marshaller) {\r
+ this.marshaller = marshaller;\r
+ }\r
+\r
+ public Source resolve(String href, String base) throws TransformerException {\r
+ if (log.isTraceEnabled())\r
+ log.trace("Resolve URI for href=" + href + " base=" + base);\r
+\r
+ Source res = null;\r
+ if (isCache())\r
+ res = cacheUriResolver.get(href);\r
+\r
+ if (res == null)\r
+ res = getStylesheetSource(href);\r
+\r
+ if (res == null)\r
+ res = getStylesheetSource(getPrefix() + href);\r
+\r
+ if (res == null)\r
+ throw new SlcException("Can't resolve URI for href=" + href\r
+ + " base=" + base);\r
+\r
+ if (isCache() && !cacheUriResolver.containsKey(href))\r
+ cacheUriResolver.put(href, res);\r
+\r
+ return res;\r
+ }\r
+\r
+ protected Source getStylesheetSource(String url) {\r
+ if (log.isDebugEnabled()) {\r
+ log.debug("Loading XSLT stylesheet from '" + url + "'");\r
+ }\r
+ try {\r
+ final Resource stylesheetResource = getApplicationContext()\r
+ .getResource(url);\r
+ String systemId = url.substring(0, url.lastIndexOf('/') + 1);\r
+ return new StreamSource(stylesheetResource.getInputStream(),\r
+ systemId);\r
+ } catch (IOException e) {\r
+ if (log.isTraceEnabled())\r
+ log.trace("Cannot load stylesheet " + url, e);\r
+ return null;\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.admin;\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
+public class HomeController extends ParameterizableViewController {\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+ ModelAndView modelAndView = new ModelAndView();\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.process;\r
+\r
+import java.util.List;\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.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.dao.process.SlcExecutionDao;\r
+\r
+public class SlcExecutionListController extends ParameterizableViewController {\r
+ private Log log = LogFactory.getLog(getClass());\r
+\r
+ private final SlcExecutionDao slcExecutionDao;\r
+\r
+ public SlcExecutionListController(SlcExecutionDao slcExecutionDao) {\r
+ this.slcExecutionDao = slcExecutionDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+ ModelAndView modelAndView = new ModelAndView();\r
+\r
+ List<SlcExecution> slcExecutions = slcExecutionDao.listSlcExecutions();\r
+ modelAndView.addObject("slcExecutions", slcExecutions);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.process;\r
+\r
+import java.util.List;\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.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.process.SlcExecutionStep;\r
+import org.argeo.slc.dao.process.SlcExecutionDao;\r
+\r
+public class SlcExecutionViewController extends ParameterizableViewController {\r
+ private Log log = LogFactory.getLog(getClass());\r
+\r
+ private final SlcExecutionDao slcExecutionDao;\r
+\r
+ public SlcExecutionViewController(SlcExecutionDao slcExecutionDao) {\r
+ this.slcExecutionDao = slcExecutionDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+ ModelAndView modelAndView = new ModelAndView();\r
+\r
+ // List<SlcExecution> slcExecutions =\r
+ // slcExecutionDao.listSlcExecutions();\r
+ String uuid = request.getParameter("uuid");\r
+ if (uuid == null)\r
+ throw new SlcException("Parameter uuid required.");\r
+\r
+ SlcExecution slcExecution = slcExecutionDao.getSlcExecution(uuid);\r
+\r
+ if (slcExecution == null)\r
+ throw new SlcException("Could not find slc execution with uuid "\r
+ + uuid + ".");\r
+\r
+ if (log.isDebugEnabled()) {\r
+ log.debug("SlcExecution " + slcExecution.getUuid());\r
+ }\r
+\r
+ List<SlcExecutionStep> slcExecutionSteps = slcExecution.getSteps();\r
+\r
+ modelAndView.addObject("slcExecutionSteps", slcExecutionSteps);\r
+ modelAndView.addObject("slcExecution", slcExecution);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\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.argeo.slc.services.test.TestManagerService;\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\r
+\r
+public class AddResultToCollectionController extends\r
+ ParameterizableViewController {\r
+ private final TestManagerService testManagerService;\r
+\r
+ public AddResultToCollectionController(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.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 javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.argeo.slc.services.test.TestManagerService;\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\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 javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.web.servlet.mvc.ParameterizableViewController;\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;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import jxl.write.Label;
+import jxl.write.WritableSheet;
+import jxl.write.WritableWorkbook;
+
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.structure.tree.TreeSPath;
+import org.argeo.slc.core.test.SlcTestUtils;
+import org.argeo.slc.core.test.TestResultPart;
+import org.argeo.slc.core.test.tree.PartSubList;
+import org.argeo.slc.core.test.tree.TreeTestResult;
+import org.springframework.web.servlet.view.document.AbstractJExcelView;
+
+public class ResultExcelView extends AbstractJExcelView {
+ protected void buildExcelDocument(Map model, WritableWorkbook workbook,
+ HttpServletRequest request, HttpServletResponse response) {
+ try {
+ if (workbook.getNumberOfSheets() == 0) {
+ workbook.createSheet("SLC", 0);
+ }
+ WritableSheet sheet = workbook.getSheet("SLC");
+
+ TreeTestResult ttr = (TreeTestResult) model
+ .get(ResultViewController.MODELKEY_RESULT);
+
+ sheet.addCell(new Label(0, 0, "Result " + ttr.getUuid()));
+
+ int currentRow = 1;
+ for (TreeSPath path : ttr.getResultParts().keySet()) {
+ PartSubList lst = ttr.getResultParts().get(path);
+ sheet.addCell(new Label(0, currentRow, "Path " + path));
+ currentRow++;
+ for (TestResultPart part : lst.getParts()) {
+ sheet.addCell(new Label(0, currentRow, SlcTestUtils
+ .statusToString(part.getStatus())));
+ sheet.addCell(new Label(1, currentRow, part.getMessage()));
+ currentRow++;
+ }
+ currentRow++;// add an empty line between paths
+ }
+ } catch (Exception e) {
+ throw new SlcException("Could not write spreadsheet.", e);
+ }
+ }
+}
--- /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
--- /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.dao.test.tree.TreeTestResultDao;\r
+\r
+public class ResultListController extends ParameterizableViewController {\r
+ private final TreeTestResultDao testResultDao;\r
+\r
+ public ResultListController(TreeTestResultDao testResultDao) {\r
+ this.testResultDao = testResultDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+\r
+ SortedSet<TreeTestResult> results = new TreeSet<TreeTestResult>();\r
+ results.addAll(testResultDao.listTestResults());\r
+ modelAndView.addObject("results", results);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+}\r
--- /dev/null
+package org.argeo.slc.web.mvc.result;
+
+import java.awt.Color;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.argeo.slc.core.structure.tree.TreeSPath;
+import org.argeo.slc.core.test.SlcTestUtils;
+import org.argeo.slc.core.test.TestResultPart;
+import org.argeo.slc.core.test.TestStatus;
+import org.argeo.slc.core.test.tree.PartSubList;
+import org.argeo.slc.core.test.tree.TreeTestResult;
+import org.springframework.web.servlet.view.document.AbstractPdfView;
+
+import com.lowagie.text.Cell;
+import com.lowagie.text.Document;
+import com.lowagie.text.Paragraph;
+import com.lowagie.text.Table;
+import com.lowagie.text.pdf.PdfWriter;
+
+public class ResultPdfView extends AbstractPdfView {
+
+ @Override
+ protected void buildPdfDocument(Map model, Document document,
+ PdfWriter writer, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ TreeTestResult ttr = (TreeTestResult) model
+ .get(ResultViewController.MODELKEY_RESULT);
+
+ document.addTitle("Result " + ttr.getUuid());
+ document.add(new Paragraph("Result " + ttr.getUuid()));
+
+ for (TreeSPath path : ttr.getResultParts().keySet()) {
+ PartSubList lst = ttr.getResultParts().get(path);
+ document.add(new Paragraph("Path " + path));
+ Table table = new Table(2, lst.getParts().size());
+ for (TestResultPart part : lst.getParts()) {
+ Integer status = part.getStatus();
+ Cell statusCell = new Cell(SlcTestUtils.statusToString(status));
+ final Color color;
+ if (status.equals(TestStatus.PASSED))
+ color = Color.GREEN;
+ else if (status.equals(TestStatus.FAILED))
+ color = Color.RED;
+ else
+ color = Color.MAGENTA;
+
+ statusCell.setBackgroundColor(color);
+ table.addCell(statusCell);
+ table.addCell(part.getMessage());
+ }
+ document.add(table);
+ }
+
+ }
+
+}
--- /dev/null
+package org.argeo.slc.web.mvc.result;\r
+\r
+import java.util.SortedMap;\r
+import java.util.TreeMap;\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.structure.StructureElement;\r
+import org.argeo.slc.core.structure.tree.TreeSPath;\r
+import org.argeo.slc.core.test.TestResultPart;\r
+import org.argeo.slc.core.test.TestStatus;\r
+import org.argeo.slc.core.test.tree.PartSubList;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+\r
+public class ResultViewController extends ParameterizableViewController {\r
+ public final static String MODELKEY_RESULT = "result";\r
+\r
+ private final TreeTestResultDao testResultDao;\r
+\r
+ public ResultViewController(TreeTestResultDao testResultDao) {\r
+ this.testResultDao = testResultDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ String uuid = request.getParameter("uuid");\r
+ TreeTestResult result = testResultDao.getTestResult(uuid);\r
+\r
+ SortedMap<TreeSPath, String> toc = generateToc(result);\r
+\r
+ SortedMap<TreeSPath, String> describedPaths = new TreeMap<TreeSPath, String>();\r
+ for (TreeSPath path : toc.keySet()) {\r
+ describedPaths.put(path, describedPath(path, result));\r
+ }\r
+\r
+ SortedMap<TreeSPath, String> anchors = new TreeMap<TreeSPath, String>();\r
+ for (TreeSPath path : toc.keySet()) {\r
+ anchors.put(path, anchor(path));\r
+ }\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+\r
+ modelAndView.addObject(MODELKEY_RESULT, result);\r
+ modelAndView.addObject("toc", toc);\r
+ modelAndView.addObject("describedPaths", describedPaths);\r
+ modelAndView.addObject("anchors", anchors);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+\r
+ private SortedMap<TreeSPath, String> generateToc(TreeTestResult result) {\r
+ SortedMap<TreeSPath, String> toc = new TreeMap<TreeSPath, String>();\r
+ for (TreeSPath path : result.getResultParts().keySet()) {\r
+ PartSubList subList = (PartSubList) result.getResultParts().get(\r
+ path);\r
+ boolean isFailed = false;\r
+ for (TestResultPart part : subList.getParts()) {\r
+ if (!part.getStatus().equals(TestStatus.PASSED)) {\r
+ isFailed = true;\r
+ break;\r
+ }\r
+ }\r
+ fillToc(toc, path, isFailed);\r
+ }\r
+ return toc;\r
+ }\r
+\r
+ private void fillToc(SortedMap<TreeSPath, String> toc, TreeSPath path,\r
+ boolean isFailed) {\r
+ if (isFailed) {\r
+ toc.put(path, "failed");\r
+ } else {\r
+ if (!toc.containsKey(path)) {\r
+ toc.put(path, "passed");\r
+ }\r
+ }\r
+\r
+ if (path.getParent() != null) {\r
+ fillToc(toc, path.getParent(), isFailed);\r
+ }\r
+ }\r
+\r
+ private static String anchor(TreeSPath path) {\r
+ return path.getAsUniqueString().replace(path.getSeparator(), '_');\r
+ }\r
+\r
+ private static String describedPath(TreeSPath path, TreeTestResult ttr) {\r
+ StringBuffer buf = new StringBuffer("");\r
+ // TODO :optimize with hierarchy\r
+ describedPath(path, buf, ttr);\r
+ return buf.toString();\r
+ }\r
+\r
+ private static void describedPath(TreeSPath path, StringBuffer buf,\r
+ TreeTestResult ttr) {\r
+ if (path.getParent() != null) {\r
+ describedPath(path.getParent(), buf, ttr);\r
+ }\r
+ String description = path.getName();\r
+ StructureElement element = ttr.getElements().get(path);\r
+ if (element != null) {\r
+ description = element.getLabel();\r
+ }\r
+ buf.append('/').append(description);\r
+ }\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.core.test.TestRunDescriptor;\r
+import org.argeo.slc.dao.test.TestRunDescriptorDao;\r
+\r
+public class TestRunViewController extends ParameterizableViewController {\r
+ private final TestRunDescriptorDao testRunDescriptorDao;\r
+\r
+ public TestRunViewController(TestRunDescriptorDao testRunDescriptorDao) {\r
+ this.testRunDescriptorDao = testRunDescriptorDao;\r
+ }\r
+\r
+ @Override\r
+ protected ModelAndView handleRequestInternal(HttpServletRequest request,\r
+ HttpServletResponse response) throws Exception {\r
+\r
+ String uuid = request.getParameter("uuid");\r
+ TestRunDescriptor testRunDescriptor = testRunDescriptorDao\r
+ .getTestRunDescriptor(uuid);\r
+\r
+ ModelAndView modelAndView = new ModelAndView();\r
+ modelAndView.addObject("testRunDescriptor", testRunDescriptor);\r
+ modelAndView.setViewName(getViewName());\r
+ return modelAndView;\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.ws;\r
+\r
+import javax.xml.namespace.QName;\r
+\r
+import org.springframework.ws.context.MessageContext;\r
+import org.springframework.ws.soap.SoapFault;\r
+import org.springframework.ws.soap.SoapFaultDetail;\r
+import org.springframework.ws.soap.server.endpoint.SimpleSoapExceptionResolver;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+public class CustomSoapExceptionResolver extends SimpleSoapExceptionResolver {\r
+ private Log log = LogFactory.getLog(getClass());\r
+\r
+ @Override\r
+ protected void customizeFault(MessageContext messageContext,\r
+ Object endpoint, Exception ex, SoapFault fault) {\r
+ log.error("Exception " + ex.getMessage() + " in end point " + endpoint,\r
+ ex);\r
+ SoapFaultDetail detail = fault.addFaultDetail();\r
+ for (StackTraceElement elem : ex.getStackTrace()) {\r
+ detail.addFaultDetailElement(new QName("StackElement")).addText(\r
+ elem.toString());\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.ws.process;
+
+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.dao.process.SlcExecutionDao;
+import org.argeo.slc.msg.process.SlcExecutionRequest;
+import org.argeo.slc.msg.process.SlcExecutionStatusRequest;
+
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+public class SlcExecutionRequestEp extends AbstractMarshallingPayloadEndpoint {
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private final SlcExecutionDao slcExecutionDao;
+
+ public SlcExecutionRequestEp(SlcExecutionDao slcExecutionDao) {
+ this.slcExecutionDao = slcExecutionDao;
+ }
+
+ @Override
+ protected Object invokeInternal(Object requestObject) throws Exception {
+ if (requestObject instanceof SlcExecutionRequest) {
+
+ SlcExecutionRequest msg = (SlcExecutionRequest) requestObject;
+ SlcExecution slcExecutionMsg = msg.getSlcExecution();
+
+ SlcExecution slcExecutionPersisted = slcExecutionDao
+ .getSlcExecution(slcExecutionMsg.getUuid());
+ if (slcExecutionPersisted == null) {
+ if (log.isTraceEnabled())
+ log.trace("Creating SLC execution #"
+ + slcExecutionMsg.getUuid());
+
+ slcExecutionDao.create(slcExecutionMsg);
+ } else {
+ if (log.isTraceEnabled())
+ log.trace("Updating SLC execution #"
+ + slcExecutionMsg.getUuid());
+
+ slcExecutionDao.merge(slcExecutionMsg);
+ }
+ return null;
+
+ } else if (requestObject instanceof SlcExecutionStatusRequest) {
+ SlcExecutionStatusRequest msg = (SlcExecutionStatusRequest) requestObject;
+ SlcExecution slcExecution = slcExecutionDao.getSlcExecution(msg
+ .getSlcExecutionUuid());
+ if (slcExecution == null)
+ throw new SlcException("Could not find SLC execution #"
+ + msg.getSlcExecutionUuid());
+
+ slcExecution.setStatus(msg.getNewStatus());
+
+ if (log.isTraceEnabled())
+ log.trace("Updating status for SLC execution #"
+ + slcExecution.getUuid());
+
+ slcExecutionDao.update(slcExecution);
+ return null;
+ } else {
+ throw new SlcException("Unrecognized request format: "
+ + requestObject.getClass());
+ }
+ }
+}
--- /dev/null
+package org.argeo.slc.ws.process;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.core.process.SlcExecutionStep;
+import org.argeo.slc.dao.process.SlcExecutionDao;
+import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+public class SlcExecutionStepsRequestEp extends
+ AbstractMarshallingPayloadEndpoint {
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private final SlcExecutionDao slcExecutionDao;
+
+ public SlcExecutionStepsRequestEp(SlcExecutionDao slcExecutionDao) {
+ this.slcExecutionDao = slcExecutionDao;
+ }
+
+ @Override
+ protected Object invokeInternal(Object requestObject) throws Exception {
+ String uuid = null;
+ try {
+ SlcExecutionStepsRequest msg = (SlcExecutionStepsRequest) requestObject;
+ uuid = msg.getSlcExecutionUuid();
+ if (log.isTraceEnabled()) {
+ log.trace("Trying to add additional steps to SLC execution #"
+ + uuid + ":");
+ for (SlcExecutionStep step : msg.getSteps()) {
+ log.trace("Step " + step.getUuid() + " (in SLC execution #"
+ + uuid + ")");
+ }
+ log.trace("Adding " + msg.getSteps().size()
+ + " steps to SLC execution #" + uuid);
+ }
+
+ slcExecutionDao.addSteps(uuid, msg.getSteps());
+ return null;
+ } catch (Exception e) {
+ log.error("Could not update SLC execution #" + uuid
+ + " with additional steps", e);
+ throw e;
+ }
+ }
+
+}
--- /dev/null
+package org.argeo.slc.ws.test.tree;
+
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;
+import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
+
+public class CloseTreeTestResultRequestEp extends
+ AbstractMarshallingPayloadEndpoint {
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private final TreeTestResultDao treeTestResultDao;
+
+ public CloseTreeTestResultRequestEp(TreeTestResultDao treeTestResultDao) {
+ this.treeTestResultDao = treeTestResultDao;
+ }
+
+ @Override
+ protected Object invokeInternal(Object requestObject) throws Exception {
+ CloseTreeTestResultRequest msg = (CloseTreeTestResultRequest) requestObject;
+
+ if (log.isTraceEnabled())
+ log.trace("Closing result #" + msg.getResultUuid() + " at date "
+ + msg.getCloseDate());
+
+ treeTestResultDao.close(msg.getResultUuid(), msg.getCloseDate());
+
+ return null;
+ }
+
+}
--- /dev/null
+package org.argeo.slc.ws.test.tree;
+
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+import org.apache.commons.logging.Log;
+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 {
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private final TreeTestResultDao treeTestResultDao;
+ private final TestManagerService testManagerService;
+
+ public CreateTreeTestResultRequestEp(TreeTestResultDao treeTestResultDao,
+ TestManagerService testManagerService) {
+ this.treeTestResultDao = treeTestResultDao;
+ this.testManagerService = testManagerService;
+ }
+
+ @Override
+ protected Object invokeInternal(Object requestObject) throws Exception {
+ CreateTreeTestResultRequest msg = (CreateTreeTestResultRequest) requestObject;
+ TreeTestResult treeTestResult = msg.getTreeTestResult();
+
+ 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;
+ }
+
+}
--- /dev/null
+package org.argeo.slc.ws.test.tree;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+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.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private final TreeTestResultDao treeTestResultDao;
+ private final TestManagerService testManagerService;
+
+ public ResultPartRequestEp(TreeTestResultDao treeTestResultDao,
+ TestManagerService testManagerService) {
+ this.treeTestResultDao = treeTestResultDao;
+ this.testManagerService = testManagerService;
+ }
+
+ @Override
+ protected Object invokeInternal(Object requestObject) throws Exception {
+ ResultPartRequest msg = (ResultPartRequest) requestObject;
+
+ if (log.isTraceEnabled())
+ log.trace("Registering test run descriptor #"
+ + msg.getTestRunDescriptor().getTestRunUuid());
+
+ testManagerService
+ .registerTestRunDescriptor(msg.getTestRunDescriptor());
+
+ if (log.isTraceEnabled())
+ log.trace("Adding result part to test result #"
+ + msg.getResultUuid());
+
+ treeTestResultDao.addResultPart(msg.getResultUuid(), msg.getPath(), msg
+ .getResultPart(), msg.getRelatedElements());
+// treeTestResultDao.updateAttributes(msg.getResultUuid(), msg
+// .getAttributes());
+
+ return null;
+ }
+
+}
--- /dev/null
+Manifest-Version: 1.0\r
+Export-Package: org.argeo.slc.web.mvc;uses:="org.springframework.oxm,o\r
+ rg.apache.commons.logging,org.springframework.web.servlet.view,org.sp\r
+ ringframework.core.io,org.springframework.context,org.argeo.slc.core.\r
+ test.tree,javax.xml.parsers,javax.xml.transform.dom,org.w3c.dom,org.a\r
+ rgeo.slc.core,javax.xml.transform,org.springframework.web.servlet.vie\r
+ w.xslt,javax.xml.transform.stream,org.argeo.slc.core.process";version\r
+ ="0.11.2.SNAPSHOT",org.argeo.slc.ws.process;uses:="org.springframewor\r
+ k.ws.server.endpoint,org.apache.commons.logging,org.argeo.slc.core,or\r
+ g.argeo.slc.core.process,org.argeo.slc.msg.process,org.argeo.slc.dao.\r
+ process";version="0.11.2.SNAPSHOT",org.argeo.slc.web.mvc.process;uses\r
+ :="org.springframework.web.servlet.mvc,org.apache.commons.logging,org\r
+ .argeo.slc.core,org.springframework.web.servlet,org.argeo.slc.core.pr\r
+ ocess,org.argeo.slc.dao.process,javax.servlet.http";version="0.11.2.S\r
+ NAPSHOT",org.argeo.slc.web.mvc.admin;uses:="org.springframework.web.s\r
+ ervlet.mvc,org.springframework.web.servlet,javax.servlet.http";versio\r
+ n="0.11.2.SNAPSHOT",org.argeo.slc.ws.test.tree;uses:="org.springframe\r
+ work.ws.server.endpoint,org.apache.commons.logging,org.argeo.slc.msg.\r
+ test.tree,org.argeo.slc.core.test.tree,org.argeo.slc.services.test,or\r
+ g.argeo.slc.dao.test.tree,org.argeo.slc.core.structure.tree,org.argeo\r
+ .slc.core.test";version="0.11.2.SNAPSHOT",org.argeo.slc.web.mvc.resul\r
+ t;uses:="org.springframework.web.servlet,com.lowagie.text.pdf,org.arg\r
+ eo.slc.services.test,org.argeo.slc.core.test.tree,com.lowagie.text,or\r
+ g.argeo.slc.dao.test.tree,org.argeo.slc.core.test,org.argeo.slc.core.\r
+ structure,jxl.write,org.springframework.web.servlet.mvc,org.argeo.slc\r
+ .dao.test,org.argeo.slc.core,org.springframework.web.servlet.handler,\r
+ org.springframework.web.servlet.view.document,org.argeo.slc.core.stru\r
+ cture.tree,javax.servlet.http";version="0.11.2.SNAPSHOT",org.argeo.sl\r
+ c.services.test.impl;uses:="org.argeo.slc.dao.test,org.apache.commons\r
+ .logging,org.argeo.slc.services.test,org.argeo.slc.core.test.tree,org\r
+ .argeo.slc.core.process,org.argeo.slc.dao.process,org.argeo.slc.dao.t\r
+ est.tree,org.argeo.slc.core.test";version="0.11.2.SNAPSHOT",org.argeo\r
+ .slc.services.test;uses:="org.argeo.slc.core.test";version="0.11.2.SN\r
+ APSHOT",org.argeo.slc.ws;uses:="org.apache.commons.logging,org.spring\r
+ framework.ws.soap,org.springframework.ws.soap.server.endpoint,org.spr\r
+ ingframework.ws.context,javax.xml.namespace";version="0.11.2.SNAPSHOT\r
+ ",org.argeo.slc.server.spring;version="0.11.2.SNAPSHOT"\r
+Tool: Bnd-0.0.255\r
+Bundle-Name: Argeo SLC Server\r
+Created-By: 1.6.0 (Sun Microsystems Inc.)\r
+Bundle-Vendor: Argeo\r
+Bundle-Version: 0.11.2.SNAPSHOT\r
+Bundle-ManifestVersion: 2\r
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt\r
+Bundle-Description: SLC Server\r
+Import-Package: com.lowagie.text;version="2.0",com.lowagie.text.pdf;ve\r
+ rsion="2.0",javax.servlet.http,javax.xml.namespace;version="1.3",java\r
+ x.xml.parsers;version="1.3",javax.xml.transform;version="1.3",javax.x\r
+ ml.transform.dom;version="1.3",javax.xml.transform.stream;version="1.\r
+ 3",jxl.write;version="2.6",org.apache.commons.logging;version="1.1",o\r
+ rg.argeo.slc.core;version="0.11.2.SNAPSHOT",org.argeo.slc.core.proces\r
+ s;version="0.11.2.SNAPSHOT",org.argeo.slc.core.structure;version="0.1\r
+ 1.2.SNAPSHOT",org.argeo.slc.core.structure.tree;version="0.11.2.SNAPS\r
+ HOT",org.argeo.slc.core.test;version="0.11.2.SNAPSHOT",org.argeo.slc.\r
+ core.test.tree;version="0.11.2.SNAPSHOT",org.argeo.slc.dao.process;ve\r
+ rsion="0.11.2.SNAPSHOT",org.argeo.slc.dao.test;version="0.11.2.SNAPSH\r
+ OT",org.argeo.slc.dao.test.tree;version="0.11.2.SNAPSHOT",org.argeo.s\r
+ lc.msg.process;version="0.11.2.SNAPSHOT",org.argeo.slc.msg.test.tree;\r
+ version="0.11.2.SNAPSHOT",org.argeo.slc.server.spring;version="0.11.2\r
+ .SNAPSHOT",org.argeo.slc.services.test;version="0.11.2.SNAPSHOT",org.\r
+ argeo.slc.services.test.impl;version="0.11.2.SNAPSHOT",org.argeo.slc.\r
+ web.mvc;version="0.11.2.SNAPSHOT",org.argeo.slc.web.mvc.admin;version\r
+ ="0.11.2.SNAPSHOT",org.argeo.slc.web.mvc.process;version="0.11.2.SNAP\r
+ SHOT",org.argeo.slc.web.mvc.result;version="0.11.2.SNAPSHOT",org.arge\r
+ o.slc.ws;version="0.11.2.SNAPSHOT",org.argeo.slc.ws.process;version="\r
+ 0.11.2.SNAPSHOT",org.argeo.slc.ws.test.tree;version="0.11.2.SNAPSHOT"\r
+ ,org.springframework.context;version="2.5.6.A",org.springframework.co\r
+ re.io;version="2.5.6.A",org.springframework.oxm;version="1.5.5.A",org\r
+ .springframework.web.servlet;version="2.5.6.A",org.springframework.we\r
+ b.servlet.handler;version="2.5.6.A",org.springframework.web.servlet.m\r
+ vc;version="2.5.6.A",org.springframework.web.servlet.view;version="2.\r
+ 5.6.A",org.springframework.web.servlet.view.document;version="2.5.6.A\r
+ ",org.springframework.web.servlet.view.xslt;version="2.5.6.A",org.spr\r
+ ingframework.ws.context;version="1.5.5.A",org.springframework.ws.serv\r
+ er.endpoint;version="1.5.5.A",org.springframework.ws.soap;version="1.\r
+ 5.5.A",org.springframework.ws.soap.server.endpoint;version="1.5.5.A",\r
+ org.w3c.dom;version="1.3"\r
+Bundle-SymbolicName: org.argeo.slc.server\r
+Bundle-DocURL: http://www.argeo.org\r
+Originally-Created-By: 1.6.0 (Sun Microsystems Inc.)\r
+\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
+ default-lazy-init="true">
+
+ <!-- MBeans -->
+ <bean id="hibernateStatistics"
+ class="org.hibernate.jmx.StatisticsService" lazy-init="false">
+ <property name="sessionFactory" ref="sessionFactory" />
+ </bean>
+
+ <!-- JMX -->
+ <bean id="jmxExporter"
+ class="org.springframework.jmx.export.MBeanExporter"
+ lazy-init="false">
+ <property name="beans">
+ <map>
+ <entry
+ key="bean:name=hibernateStatistics,type=statistics,sessionFactory=sessionFactory"
+ value-ref="hibernateStatistics" />
+ </map>
+ </property>
+ </bean>
+
+ <bean id="jxmServerConnector"
+ class="org.springframework.jmx.support.ConnectorServerFactoryBean"
+ lazy-init="false" depends-on="rmiRegistry">
+ <property name="objectName" value="connector:name=rmi" />
+ <property name="serviceUrl"
+ value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/springconnector" />
+ </bean>
+
+ <bean id="rmiRegistry"
+ class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"
+ lazy-init="false">
+ <property name="port" value="1099" />
+ </bean>
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
+ default-lazy-init="true">
+
+ <import
+ resource="classpath:/org/argeo/slc/hibernate/spring/applicationContext.xml" />
+ <import resource="transaction.xml" />
+
+ <!-- Properties -->
+ <bean
+ class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"
+ lazy-init="false">
+ <property name="contextOverride" value="true" />
+ <property name="properties">
+ <props>
+ <prop key="sessionFactoryParentBean">
+ slcServerDefault.sessionFactory.HSQLTest
+ </prop>
+ </props>
+ </property>
+ </bean>
+
+ <!-- Use session factories -->
+ <bean id="sessionFactory" parent="${sessionFactoryParentBean}" />
+
+ <!-- JNDI data source -->
+ <bean id="slcDefault.jndiTemplate"
+ class="org.springframework.jndi.JndiTemplate">
+ </bean>
+
+ <bean id="slcDefaut.dataSourceJndi"
+ class="org.springframework.jndi.JndiObjectFactoryBean">
+ <property name="jndiTemplate" ref="slcDefault.jndiTemplate" />
+ <property name="jndiName" value="java:comp/env/jdbc/mainDs" />
+ </bean>
+
+ <!-- DB types -->
+ <bean id="slcServerDefault.sessionFactory.HSQL"
+ parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefaut.dataSourceJndi" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect
+ hibernate.hbm2ddl.auto=update
+ hibernate.connection.autocommit=false
+ ]]></value>
+ </property>
+ </bean>
+
+ <bean id="slcServerDefault.sessionFactory.HSQLTest"
+ parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefaut.dataSourceJndi" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect
+ hibernate.hbm2ddl.auto=create
+ hibernate.generate_statistics=true
+ hibernate.connection.autocommit=false
+ ]]></value>
+ </property>
+ </bean>
+
+ <bean id="slcServerDefault.sessionFactory.MySQL"
+ parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefaut.dataSourceJndi" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.MySQLDialect
+ hibernate.hbm2ddl.auto=update
+ hibernate.connection.autocommit=false
+ ]]></value>
+ </property>
+ </bean>
+
+ <bean id="slcServerDefault.sessionFactory.MySQL5"
+ parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefaut.dataSourceJndi" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
+ hibernate.hbm2ddl.auto=update
+ hibernate.connection.autocommit=false
+ ]]></value>
+ </property>
+ </bean>
+
+ <bean id="slcServerDefault.sessionFactory.Sybase"
+ parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefaut.dataSourceJndi" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.SybaseDialect
+ hibernate.hbm2ddl.auto=update
+ hibernate.connection.autocommit=false
+ ]]></value>
+ </property>
+ </bean>
+
+ <!-- Services -->
+ <bean id="testManagerService"
+ class="org.argeo.slc.services.test.impl.TestManagerServiceImpl">
+ <constructor-arg ref="testResultDao" />
+ <constructor-arg ref="testRunDescriptorDao" />
+ <constructor-arg ref="slcExecutionDao" />
+ <constructor-arg ref="testResultCollectionDao" />
+ </bean>
+
+ <!-- DAOs -->
+ <bean id="hibernateTemplate"
+ class="org.springframework.orm.hibernate3.HibernateTemplate">
+ <property name="sessionFactory" ref="sessionFactory" />
+ <property name="allowCreate" value="false" />
+ </bean>
+
+ <bean id="testResultDao" parent="slcTemplates.dao.testResultDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="testResultCollectionDao"
+ parent="slcTemplates.dao.testResultCollectionDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="testRunDescriptorDao"
+ parent="slcTemplates.dao.testRunDescriptorDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="slcExecutionDao"
+ parent="slcTemplates.dao.slcExecutionDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <!-- Hibernate instrumentation -->
+ <bean id="osivInterceptor"
+ class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
+ <property name="sessionFactory" ref="sessionFactory" />
+ </bean>
+
+ <!-- Transaction -->
+ <bean id="transactionManager"
+ class="org.springframework.orm.hibernate3.HibernateTransactionManager"
+ lazy-init="false">
+ <property name="sessionFactory" ref="sessionFactory" />
+ </bean>
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
+ default-lazy-init="true">
+
+ <bean name="/resultView.xls"
+ class="org.argeo.slc.web.mvc.result.ResultViewController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultExcelView" />
+ </bean>
+
+ <bean name="resultExcelView"
+ class="org.argeo.slc.web.mvc.result.ResultExcelView">
+ </bean>
+
+ <bean name="/resultView.pdf"
+ class="org.argeo.slc.web.mvc.result.ResultViewController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultPdfView" />
+ </bean>
+
+ <bean name="resultPdfView"
+ class="org.argeo.slc.web.mvc.result.ResultPdfView">
+ </bean>
+
+ <bean
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+
+ <bean id="viewResolverXls"
+ class="org.springframework.web.servlet.view.BeanNameViewResolver">
+ </bean>
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <bean name="/resultList.ui"
+ class="org.argeo.slc.web.mvc.result.ResultListController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultList" />
+ </bean>
+
+ <bean id="handlerMapping"
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="resultInterceptor" />
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="resultInterceptor"
+ class="org.argeo.slc.web.mvc.result.ResultInterceptor">
+ <constructor-arg ref="testResultCollectionDao" />
+ </bean>
+
+ <bean id="viewResolver"
+ class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+ <property name="viewClass">
+ <value>org.springframework.web.servlet.view.JstlView</value>
+ </property>
+ <property name="prefix">
+ <value>WEB-INF/slc-ui/</value>
+ </property>
+ <property name="suffix">
+ <value>.jsp</value>
+ </property>
+ </bean>
+
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <bean name="/home.web"
+ class="org.argeo.slc.web.mvc.admin.HomeController">
+ <property name="viewName" value="home.jsp" />
+ </bean>
+
+ <bean name="/slcExecutionList.web"
+ class="org.argeo.slc.web.mvc.process.SlcExecutionListController">
+ <constructor-arg ref="slcExecutionDao" />
+ <property name="viewName" value="slcExecutionList" />
+ </bean>
+
+ <bean name="/slcExecutionView.web"
+ class="org.argeo.slc.web.mvc.process.SlcExecutionViewController">
+ <constructor-arg ref="slcExecutionDao" />
+ <property name="viewName" value="slcExecutionView" />
+ </bean>
+
+ <bean name="/resultList.web"
+ class="org.argeo.slc.web.mvc.result.ResultListController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultList" />
+ </bean>
+
+ <bean name="/resultView.web"
+ class="org.argeo.slc.web.mvc.result.ResultViewController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultView" />
+ </bean>
+
+ <bean name="/resultCollectionList.web"
+ class="org.argeo.slc.web.mvc.result.ResultCollectionListController">
+ <constructor-arg ref="testResultCollectionDao" />
+ <property name="viewName" value="resultCollectionList" />
+ </bean>
+
+ <bean name="/resultCollectionView.web"
+ class="org.argeo.slc.web.mvc.result.ResultCollectionViewController">
+ <constructor-arg ref="testResultCollectionDao" />
+ <property name="viewName" value="resultCollectionView" />
+ </bean>
+
+ <bean name="/addResultToCollection.web"
+ class="org.argeo.slc.web.mvc.result.AddResultToCollectionController">
+ <constructor-arg ref="testManagerService" />
+ <property name="viewName" value="addResultToCollectionS" />
+ </bean>
+
+ <bean name="/removeResultFromCollection.web"
+ class="org.argeo.slc.web.mvc.result.RemoveResultFromCollectionController">
+ <constructor-arg ref="testManagerService" />
+ <property name="viewName" value="removeResultFromCollectionS" />
+ </bean>
+
+ <bean name="/testRunView.web"
+ class="org.argeo.slc.web.mvc.result.TestRunViewController">
+ <constructor-arg ref="testRunDescriptorDao" />
+ <property name="viewName" value="testRunView" />
+ </bean>
+
+ <bean id="handlerMapping"
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="resultInterceptor" />
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="resultInterceptor"
+ class="org.argeo.slc.web.mvc.result.ResultInterceptor">
+ <constructor-arg ref="testResultCollectionDao" />
+ </bean>
+
+ <bean id="viewResolver"
+ class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+ <property name="viewClass">
+ <value>org.springframework.web.servlet.view.JstlView</value>
+ </property>
+ <property name="prefix">
+ <value>WEB-INF/slc-jsp/</value>
+ </property>
+ <property name="suffix">
+ <value>.jsp</value>
+ </property>
+ </bean>
+
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <import
+ resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />
+ <import
+ resource="classpath:/org/argeo/slc/xml/spring/applicationContext.xml" />
+
+ <bean name="slcExecutionRequestEp"
+ class="org.argeo.slc.ws.process.SlcExecutionRequestEp">
+ <constructor-arg ref="slcExecutionDao" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller"
+ ref="slcDefault.castor.marshaller" />
+ </bean>
+
+ <bean name="slcExecutionStepsRequestEp"
+ class="org.argeo.slc.ws.process.SlcExecutionStepsRequestEp">
+ <constructor-arg ref="slcExecutionDao" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller"
+ ref="slcDefault.castor.marshaller" />
+ </bean>
+
+ <bean name="createTreeTestResultRequestEp"
+ class="org.argeo.slc.ws.test.tree.CreateTreeTestResultRequestEp">
+ <constructor-arg ref="testResultDao" />
+ <constructor-arg ref="testManagerService" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller"
+ ref="slcDefault.castor.marshaller" />
+ </bean>
+
+ <bean name="closeTreeTestResultRequestEp"
+ class="org.argeo.slc.ws.test.tree.CloseTreeTestResultRequestEp">
+ <constructor-arg ref="testResultDao" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller"
+ ref="slcDefault.castor.marshaller" />
+ </bean>
+
+ <bean name="resultPartRequestEp"
+ class="org.argeo.slc.ws.test.tree.ResultPartRequestEp">
+ <constructor-arg ref="testResultDao" />
+ <constructor-arg ref="testManagerService" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller"
+ ref="slcDefault.castor.marshaller" />
+ </bean>
+
+ <bean id="endPointMapping"
+ class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
+ <property name="mappings">
+
+ <props>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}slc-execution-request">
+ slcExecutionRequestEp
+ </prop>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}slc-execution-status-request">
+ slcExecutionRequestEp
+ </prop>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}slc-execution-steps-request">
+ slcExecutionStepsRequestEp
+ </prop>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}create-tree-test-result-request">
+ createTreeTestResultRequestEp
+ </prop>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}close-tree-test-result-request">
+ closeTreeTestResultRequestEp
+ </prop>
+ <prop
+ key="{http://argeo.org/projects/slc/schemas}result-part-request">
+ resultPartRequestEp
+ </prop>
+ </props>
+ </property>
+
+ <property name="interceptors">
+ <bean
+ class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor" />
+ </property>
+ </bean>
+
+ <bean id="slcDefinition"
+ class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
+ <property name="schema" ref="slcDefault.xml.xsdSchema" />
+ <property name="portTypeName" value="Slc" />
+ <property name="targetNamespace"
+ value="http://argeo.org/projects/slc/definitions" />
+ <property name="requestSuffix" value="-request" />
+ </bean>
+
+ <bean class="org.argeo.slc.ws.CustomSoapExceptionResolver" />
+
+ <!-- Web Services transactions -->
+ <aop:config>
+ <aop:pointcut id="epMethods"
+ expression="execution(* org.springframework.ws.server.endpoint.MessageEndpoint.invoke(..))" />
+ <aop:advisor advice-ref="epAdvice" pointcut-ref="epMethods" />
+ </aop:config>
+
+ <tx:advice id="epAdvice" transaction-manager="transactionManager">
+ <tx:attributes>
+ <tx:method name="*" propagation="REQUIRED" />
+ </tx:attributes>
+ </tx:advice>
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
+ default-lazy-init="true">
+
+ <import
+ resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />
+
+ <bean
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+
+ <bean id="viewResolverXslt"
+ class="org.argeo.slc.web.mvc.XsltMarshallerViewResolver">
+ <property name="viewClass">
+ <value>org.argeo.slc.web.mvc.XsltMarshallerView</value>
+ </property>
+ <property name="prefix">
+ <value>WEB-INF/xslt/</value>
+ </property>
+ <property name="suffix">
+ <value>.xsl</value>
+ </property>
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ </bean>
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <!-- Transaction -->
+ <bean id="transactionManager"
+ class="org.springframework.orm.hibernate3.HibernateTransactionManager"
+ lazy-init="false">
+ <property name="sessionFactory" ref="sessionFactory" />
+ </bean>
+
+ <!-- DAO transactions -->
+ <aop:config>
+ <aop:pointcut id="daoProcessMethods"
+ expression="execution(* org.argeo.slc.dao.process.*.*(..))" />
+ <aop:advisor advice-ref="daoAdvice"
+ pointcut-ref="daoProcessMethods" />
+ </aop:config>
+
+ <aop:config>
+ <aop:pointcut id="daoTestMethods"
+ expression="execution(* org.argeo.slc.dao.test.*.*(..))" />
+ <aop:advisor advice-ref="daoAdvice"
+ pointcut-ref="daoTestMethods" />
+ </aop:config>
+
+ <aop:config>
+ <aop:pointcut id="daoTestTreeMethods"
+ expression="execution(* org.argeo.slc.dao.test.tree.*.*(..))" />
+ <aop:advisor advice-ref="daoAdvice"
+ pointcut-ref="daoTestTreeMethods" />
+ </aop:config>
+
+ <tx:advice id="daoAdvice"
+ transaction-manager="transactionManager">
+ <tx:attributes>
+ <tx:method name="get*" propagation="REQUIRED"
+ read-only="true" />
+ <tx:method name="list*" propagation="REQUIRED"
+ read-only="true" />
+ <tx:method name="*" propagation="REQUIRED" />
+ </tx:attributes>
+ </tx:advice>
+
+</beans>
\ No newline at end of file