From d649e362801136c90fc0c82e191b2c244539c0c4 Mon Sep 17 00:00:00 2001 From: Gabriel Landais <glandais@kereval.com> Date: Mon, 4 Apr 2011 09:50:40 +0000 Subject: [PATCH] Detection of message type when validating using Proxy->EVSClient git-svn-id: https://scm.gforge.inria.fr/authscm/ycadoret/svn/gazelle/Maven/gazelle-proxy/trunk@21399 356b4b1a-1d2b-0410-8bf1-ffa24008f01e --- .../proxy/model/message/AbstractMessage.java | 3 +++ .../gazelle/proxy/model/message/DicomMessage.java | 5 +++++ .../ihe/gazelle/proxy/model/message/HL7Message.java | 9 +++++++-- .../gazelle/proxy/model/message/HTTPMessage.java | 12 +++++++++--- .../gazelle/proxy/model/message/SyslogMessage.java | 5 +++++ .../net/ihe/gazelle/proxy/action/MessageBean.java | 13 +++++++++---- 6 files changed, 38 insertions(+), 9 deletions(-) diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java index 05d927c7..9b67f4f2 100644 --- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java +++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java @@ -35,6 +35,7 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import net.ihe.gazelle.proxy.enums.ChannelType; import net.ihe.gazelle.proxy.enums.ProxySide; import net.ihe.gazelle.proxy.model.Channel; @@ -112,6 +113,8 @@ public abstract class AbstractMessage { } } + public abstract ChannelType getChannelType(); + public void setMessageReceivedAsString(String messageReceived) { this.messageReceived = messageReceived.getBytes(UTF_8); } diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java index 49d16991..e3f33be9 100644 --- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java +++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java @@ -32,6 +32,7 @@ import javax.persistence.EntityManager; import javax.persistence.FetchType; import javax.persistence.Transient; +import net.ihe.gazelle.proxy.enums.ChannelType; import net.ihe.gazelle.proxy.enums.ProxySide; import net.ihe.gazelle.proxy.model.Channel; import net.ihe.gazelle.proxy.model.CommandFieldValues; @@ -96,6 +97,10 @@ public class DicomMessage extends AbstractMessage implements java.io.Serializabl @Transient private AttributeList attributeList; + public ChannelType getChannelType() { + return ChannelType.DICOM; + } + // Constructors private static Map<String, String> getMapOfDicomUID(EntityManager entityManager) { diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java index 513e717c..87dc592e 100644 --- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java +++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java @@ -17,6 +17,7 @@ package net.ihe.gazelle.proxy.model.message; import javax.persistence.Entity; +import net.ihe.gazelle.proxy.enums.ChannelType; import net.ihe.gazelle.proxy.enums.ProxySide; import net.ihe.gazelle.proxy.model.Channel; @@ -43,9 +44,13 @@ public class HL7Message extends AbstractMessage implements java.io.Serializable super(); } - public HL7Message(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, Integer remotePort, - Integer channelId, ProxySide proxySide) { + public HL7Message(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, + Integer remotePort, Integer channelId, ProxySide proxySide) { super(channel, fromIP, localPort, proxyPort, toIP, remotePort, channelId, proxySide); } + public ChannelType getChannelType() { + return ChannelType.HL7; + } + } diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java index 7852d076..7d64f0fa 100644 --- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java +++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java @@ -6,6 +6,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.OneToOne; +import net.ihe.gazelle.proxy.enums.ChannelType; import net.ihe.gazelle.proxy.enums.ProxySide; import net.ihe.gazelle.proxy.model.Channel; @@ -15,7 +16,8 @@ import org.jboss.seam.annotations.Name; @Name("httpMessage") public class HTTPMessage extends AbstractMessage { -// private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(HTTPMessage.class); + // private static org.apache.log4j.Logger log = + // org.apache.log4j.Logger.getLogger(HTTPMessage.class); @Column(name = "http_headers") @Basic(fetch = FetchType.LAZY) @@ -30,8 +32,8 @@ public class HTTPMessage extends AbstractMessage { @OneToOne(fetch = FetchType.LAZY) private HTTPMessage matchingMessage; - public HTTPMessage(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, Integer inRemotePort, - Integer channelId, ProxySide proxySide) { + public HTTPMessage(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, + Integer inRemotePort, Integer channelId, ProxySide proxySide) { super(channel, fromIP, localPort, proxyPort, toIP, inRemotePort, channelId, proxySide); } @@ -80,4 +82,8 @@ public class HTTPMessage extends AbstractMessage { return messageType; } + public ChannelType getChannelType() { + return ChannelType.HTTP; + } + } diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java index ef47be16..cfff8668 100644 --- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java +++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java @@ -17,6 +17,7 @@ package net.ihe.gazelle.proxy.model.message; import javax.persistence.Entity; +import net.ihe.gazelle.proxy.enums.ChannelType; import net.ihe.gazelle.proxy.enums.ProxySide; import net.ihe.gazelle.proxy.model.Channel; @@ -48,4 +49,8 @@ public class SyslogMessage extends AbstractMessage implements java.io.Serializab super(channel, fromIP, localPort, proxyPort, toIP, remotePort, channelId, proxySide); } + public ChannelType getChannelType() { + return ChannelType.SYSLOG; + } + } diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java index 0c9bef83..5cfd97f6 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java @@ -26,6 +26,7 @@ import org.apache.commons.httpclient.methods.multipart.FilePart; import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity; import org.apache.commons.httpclient.methods.multipart.Part; import org.apache.commons.httpclient.methods.multipart.PartSource; +import org.apache.commons.httpclient.methods.multipart.StringPart; import org.apache.commons.lang.StringEscapeUtils; import org.apache.tika.mime.MediaType; import org.jboss.seam.ScopeType; @@ -172,7 +173,11 @@ public class MessageBean { // First send the file to EVSClient HttpClient client = new HttpClient(); PostMethod filePost = new PostMethod(Preferences.getProperty("evsclient.url") + "upload"); - PartSource partSource = new ByteArrayPartSource("message", message.getMessageReceived()); + + // use the type as file name + String messageType = message.getChannelType().name(); + + PartSource partSource = new ByteArrayPartSource(messageType, message.getMessageReceived()); Part[] parts = { new FilePart("message", partSource) }; filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); int status = -1; @@ -186,11 +191,11 @@ public class MessageBean { boolean fail = false; if (status == HttpStatus.SC_OK) { try { - String fileName = filePost.getResponseBodyAsString(); - String encodedFileName = URLEncoder.encode(fileName, "UTF-8"); + String key = filePost.getResponseBodyAsString(); + String encodedKey = URLEncoder.encode(key, "UTF-8"); HttpServletResponse response = (HttpServletResponse) extCtx.getResponse(); - String url = Preferences.getProperty("evsclient.url") + "validate.seam?filename=" + encodedFileName; + String url = Preferences.getProperty("evsclient.url") + "validate.seam?file=" + encodedKey; response.sendRedirect(url); } catch (IOException e) { -- GitLab