X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.activemq%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjms%2FJmsTreeTestResultListener.java;h=6b58bb8a53c32895ef6ce8c201d583a27669ea36;hb=0bcca59c19e554f94ec03af0dc7c44047a2eade7;hp=b315c0143ba4dad07d3ce299c12614d6e0705ce9;hpb=289c85bbe2b06073b69fb661380ef742328b77dd;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTreeTestResultListener.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTreeTestResultListener.java index b315c0143..6b58bb8a5 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTreeTestResultListener.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTreeTestResultListener.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.argeo.slc.jms; import javax.jms.Destination; @@ -5,24 +21,25 @@ import javax.jms.Destination; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; +import org.argeo.slc.core.attachment.Attachment; +import org.argeo.slc.core.attachment.SimpleAttachment; import org.argeo.slc.core.test.tree.TreeTestResult; +import org.argeo.slc.core.test.tree.TreeTestResultListener; +import org.argeo.slc.msg.test.tree.AddTreeTestResultAttachmentRequest; import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest; import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest; import org.argeo.slc.msg.test.tree.ResultPartRequest; -import org.argeo.slc.test.TestResultListener; import org.argeo.slc.test.TestResultPart; +import org.springframework.jms.JmsException; import org.springframework.jms.core.JmsTemplate; -public class JmsTreeTestResultListener implements - TestResultListener { +public class JmsTreeTestResultListener implements TreeTestResultListener { private final Log log = LogFactory.getLog(getClass()); private Boolean onlyOnClose = false; private JmsTemplate jmsTemplate; - private Destination createDestination; - private Destination addResultPartDestination; - private Destination closeDestination; + private Destination executionEventDestination; public void resultPartAdded(TreeTestResult testResult, TestResultPart testResultPart) { @@ -40,7 +57,7 @@ public class JmsTreeTestResultListener implements log.debug("Send create result request for result " + testResult.getUuid()); - jmsTemplate.convertAndSend(createDestination, req); + jmsTemplate.convertAndSend(executionEventDestination, req); } else { ResultPartRequest req = new ResultPartRequest(testResult); @@ -48,8 +65,13 @@ public class JmsTreeTestResultListener implements log.debug("Send result parts for result " + testResult.getUuid()); - jmsTemplate.convertAndSend(addResultPartDestination, req); + jmsTemplate.convertAndSend(executionEventDestination, req); } + } catch (JmsException e) { + log.warn("Could not notify result part to server: " + + e.getMessage()); + if (log.isTraceEnabled()) + log.debug("Original error.", e); } catch (Exception e) { throw new SlcException("Could not notify to JMS", e); } @@ -65,7 +87,7 @@ public class JmsTreeTestResultListener implements log.debug("Send create result request for result " + testResult.getUuid()); - jmsTemplate.convertAndSend(createDestination, req); + jmsTemplate.convertAndSend(executionEventDestination, req); } else { CloseTreeTestResultRequest req = new CloseTreeTestResultRequest( testResult); @@ -74,12 +96,36 @@ public class JmsTreeTestResultListener implements log.debug("Send close result request for result " + testResult.getUuid()); - jmsTemplate.convertAndSend(closeDestination, req); + jmsTemplate.convertAndSend(executionEventDestination, req); } + } catch (JmsException e) { + log.warn("Could not notify result close to server: " + + e.getMessage()); + if (log.isTraceEnabled()) + log.debug("Original error.", e); + } catch (Exception e) { + throw new SlcException("Could not notify to JMS", e); + } + } + + public void addAttachment(TreeTestResult testResult, Attachment attachment) { + try { + AddTreeTestResultAttachmentRequest req = new AddTreeTestResultAttachmentRequest(); + req.setResultUuid(testResult.getUuid()); + req.setAttachment((SimpleAttachment) attachment); + jmsTemplate.convertAndSend(executionEventDestination, req); + + } catch (JmsException e) { + log + .warn("Could not notify attachment to server: " + + e.getMessage()); + if (log.isTraceEnabled()) + log.debug("Original error.", e); } catch (Exception e) { throw new SlcException("Could not notify to JMS", e); } + } public void setOnlyOnClose(Boolean onlyOnClose) { @@ -90,16 +136,9 @@ public class JmsTreeTestResultListener implements this.jmsTemplate = jmsTemplate; } - public void setCreateDestination(Destination createDestination) { - this.createDestination = createDestination; - } - - public void setAddResultPartDestination(Destination addResultPartDestination) { - this.addResultPartDestination = addResultPartDestination; - } - - public void setCloseDestination(Destination closeDestination) { - this.closeDestination = closeDestination; + public void setExecutionEventDestination( + Destination executionEventDestination) { + this.executionEventDestination = executionEventDestination; } }