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 05d927c7607528ee80b0bb155ad16f5708e4894f..9b67f4f2469dcaca796dde8f9eeb228aa8caeecc 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 49d169915773d9e52a45bc02629a9df3cf362ccc..e3f33be9c4e83714fa43619d2593311927ee20f7 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 513e717c28d3f8da913e35c16751cc3f362b9729..87dc592e27022f7f337a6437ee7320b065d5ac11 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 7852d076637e8740b625ec1e4104c4dd0bf16ee7..7d64f0faa5704d1712cecd6c196a1fe2667c928d 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 ef47be1666f8bc2a764483a37563fb0660959459..cfff86689ab8181cdbad17624c17e88f34e949e1 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 0c9bef831d317a462dc57cae131d05cc943c78d6..5cfd97f61fd89f657dedd52e5a17fea46f7b63bd 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) {