You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(44) |
Aug
(98) |
Sep
(97) |
Oct
(130) |
Nov
(118) |
Dec
(102) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(139) |
Feb
(74) |
Mar
(128) |
Apr
(104) |
May
(121) |
Jun
(32) |
Jul
(29) |
Aug
(9) |
Sep
(16) |
Oct
|
Nov
(11) |
Dec
(29) |
| 2004 |
Jan
(15) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(9) |
Sep
(2) |
Oct
(9) |
Nov
(3) |
Dec
(2) |
| 2005 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
|
May
(1) |
Jun
(5) |
Jul
|
Aug
(12) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2006 |
Jan
(3) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(5) |
Nov
(5) |
Dec
|
| 2007 |
Jan
(2) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv18267
Modified Files:
EbxmlMessage.java Element.java ExtensionElementImpl.java
HeaderElement.java PKISignatureImpl.java Signature.java
Log Message:
Bug fix: Digital Signature:
- In PKISignatureImpl.sign(), when soapPart is transformed to a DOM tree
(soapPartDocument), there is already an empty <ds:Signature> element
added into the tree. Thus, xmlsec would consider such an empty element
when computing digest for URI="". (I wonder such an empty <ds:Signature>
should be removed during transform but it is not, anyway.) Therefore,
the current solution is as follows: upon construction of Signature.
newInstance(), <ds:Signature> is not added immediate into the SOAP tree.
After xmlsec signing, domToSoap() would invoke Signature.getSOAPElement()
which really creates and inserts the <ds:Signature> at this moment.
- In PKISignatureImpl.verify(), if an EbxmlMessage is found to be file-based,
the file is used to build the DOM tree instead of the SOAP tree. This is
to eliminate the uncertainty that different SOAP prefixes may be probably
changed by JAXM during EbxmlMessage construction. To enable file-based
verification, EbxmlMessage is added with the methods,
setSOAPMessageFileOffset() and getSOAPMessageFileOffset(), to record the
offset position and length of the SOAP message in the file.
Index: EbxmlMessage.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/EbxmlMessage.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** EbxmlMessage.java 11 Jul 2003 03:48:12 -0000 1.30
--- EbxmlMessage.java 16 Jul 2003 08:54:10 -0000 1.31
***************
*** 159,162 ****
--- 159,166 ----
private ArrayList payloadContainers;
+ private int soapMessageFileOffset;
+
+ private int soapMessageLength;
+
/**
* Optional file name in which the message is persisted.
***************
*** 248,251 ****
--- 252,257 ----
saveChanges();
+ soapMessageFileOffset = 0;
+ soapMessageLength = 0;
filename = null;
messageOrder = null;
***************
*** 901,906 ****
CertResolver certResolver)
throws SOAPException, SignatureException {
! Signature signature = Signature.newInstance(this);
! return signature.verify(password, keyStoreLocation, certResolver);
}
--- 907,927 ----
CertResolver certResolver)
throws SOAPException, SignatureException {
! boolean result = true;
! Iterator i = headerContainer.getSignatures();
! if (i.hasNext()) {
! while (i.hasNext()) {
! Signature sig = (Signature) i.next();
! Signature signature = Signature.newInstance
! (this, sig.soapEnvelope, sig.getSOAPElement());
! result = result && signature.verify
! (password, keyStoreLocation, certResolver);
! }
! }
! else {
! throw new SignatureException("No <" + Signature.
! NAMESPACE_PREFIX_DS + ":" + Signature.ELEMENT_SIGNATURE +
! "> element is found to be verified!");
! }
! return result;
}
***************
*** 1325,1328 ****
--- 1346,1361 ----
return null;
+ }
+
+ public void setSOAPMessageFileOffset(int offset, int length) {
+ soapMessageFileOffset = offset;
+ soapMessageLength = length;
+ }
+
+ public int[] getSOAPMessageFileOffset() {
+ int[] offset = new int[2];
+ offset[0] = soapMessageFileOffset;
+ offset[1] = soapMessageLength;
+ return offset;
}
Index: Element.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/Element.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Element.java 9 Apr 2003 07:48:20 -0000 1.3
--- Element.java 16 Jul 2003 08:54:10 -0000 1.4
***************
*** 88,93 ****
--- 88,95 ----
SOAPElement getSOAPElement() throws SOAPException;
+ /*
void synchronizeWithParent(SOAPElement parent, int index)
throws SOAPException;
+ */
/** Add an attribute of the given <code>name</code> and <code>value</code>
Index: ExtensionElementImpl.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/ExtensionElementImpl.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** ExtensionElementImpl.java 10 Jun 2003 02:22:48 -0000 1.8
--- ExtensionElementImpl.java 16 Jul 2003 08:54:10 -0000 1.9
***************
*** 94,97 ****
--- 94,99 ----
protected final SOAPEnvelope soapEnvelope;
+ private final String localName;
+
/**
* An <code>ExtensionElement</code> by default has a namespace and URI
***************
*** 111,116 ****
this.soapEnvelope = soapEnvelope;
this.soapElement = soapElement;
! namespacePrefix = soapElement.getElementName().getPrefix();
! namespaceUri = soapElement.getElementName().getURI();
}
--- 113,120 ----
this.soapEnvelope = soapEnvelope;
this.soapElement = soapElement;
! Name name = soapElement.getElementName();
! localName = name.getLocalName();
! namespacePrefix = name.getPrefix();
! namespaceUri = name.getURI();
}
***************
*** 124,128 ****
throws SOAPException {
this(soapEnvelope, localName, NAMESPACE_PREFIX_EB, NAMESPACE_URI_EB,
! isHeaderElement);
}
--- 128,132 ----
throws SOAPException {
this(soapEnvelope, localName, NAMESPACE_PREFIX_EB, NAMESPACE_URI_EB,
! isHeaderElement, true);
}
***************
*** 134,139 ****
*/
ExtensionElementImpl(SOAPEnvelope soapEnvelope, String localName,
! String prefix, String uri, boolean isHeaderElement)
! throws SOAPException {
/*
soapElement = SOAPFactory.newInstance().
--- 138,143 ----
*/
ExtensionElementImpl(SOAPEnvelope soapEnvelope, String localName,
! String prefix, String uri, boolean isHeaderElement,
! boolean createSOAPElement) throws SOAPException {
/*
soapElement = SOAPFactory.newInstance().
***************
*** 141,155 ****
*/
this.soapEnvelope = soapEnvelope;
! Name name = soapEnvelope.createName(localName, prefix, uri);
! if (isHeaderElement) {
! soapElement = soapEnvelope.getHeader().addHeaderElement(name);
! if (uri.equals(NAMESPACE_URI_EB)) {
! ((SOAPHeaderElement) soapElement).
! setMustUnderstand(HeaderElement.MUST_UNDERSTAND);
! ((SOAPHeaderElement) soapElement).setActor(null);
}
}
else {
! soapElement = soapEnvelope.getBody().addBodyElement(name);
}
namespacePrefix = prefix;
--- 145,165 ----
*/
this.soapEnvelope = soapEnvelope;
! this.localName = localName;
! if (createSOAPElement) {
! Name name = soapEnvelope.createName(localName, prefix, uri);
! if (isHeaderElement) {
! soapElement = soapEnvelope.getHeader().addHeaderElement(name);
! if (uri.equals(NAMESPACE_URI_EB)) {
! ((SOAPHeaderElement) soapElement).
! setMustUnderstand(HeaderElement.MUST_UNDERSTAND);
! ((SOAPHeaderElement) soapElement).setActor(null);
! }
! }
! else {
! soapElement = soapEnvelope.getBody().addBodyElement(name);
}
}
else {
! soapElement = null;
}
namespacePrefix = prefix;
***************
*** 257,263 ****
--- 267,279 ----
*/
public SOAPElement getSOAPElement() throws SOAPException {
+ if (soapElement == null) {
+ Name name = soapEnvelope.createName
+ (localName, namespacePrefix, namespaceUri);
+ soapElement = soapEnvelope.getHeader().addHeaderElement(name);
+ }
return soapElement;
}
+ /*
public void synchronizeWithParent(SOAPElement parent, int index)
throws SOAPException {
***************
*** 280,283 ****
--- 296,300 ----
+ String.valueOf(index) + "!");
}
+ */
/** Add an attribute of the given <code>name</code> and <code>value</code>
Index: HeaderElement.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/HeaderElement.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** HeaderElement.java 18 Jun 2003 09:14:43 -0000 1.6
--- HeaderElement.java 16 Jul 2003 08:54:10 -0000 1.7
***************
*** 119,123 ****
HeaderElement(SOAPEnvelope soapEnvelope, String localName, String prefix,
String uri) throws SOAPException {
! super(soapEnvelope, localName, prefix, uri, true);
}
--- 119,123 ----
HeaderElement(SOAPEnvelope soapEnvelope, String localName, String prefix,
String uri) throws SOAPException {
! super(soapEnvelope, localName, prefix, uri, true, false);
}
Index: PKISignatureImpl.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/PKISignatureImpl.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** PKISignatureImpl.java 5 May 2003 08:45:07 -0000 1.8
--- PKISignatureImpl.java 16 Jul 2003 08:54:10 -0000 1.9
***************
*** 76,81 ****
import hk.hku.cecid.phoenix.pki.SignException;
import hk.hku.cecid.phoenix.pki.VerifyException;
! import java.io.ByteArrayInputStream;
! import java.io.ByteArrayOutputStream;
import java.security.PrivateKey;
import java.security.PublicKey;
--- 76,80 ----
import hk.hku.cecid.phoenix.pki.SignException;
import hk.hku.cecid.phoenix.pki.VerifyException;
! import java.io.*;
import java.security.PrivateKey;
import java.security.PublicKey;
***************
*** 114,121 ****
}
! PKISignatureImpl(SOAPEnvelope soapEnvelope, SOAPElement soapElement)
! throws SOAPException {
super(soapEnvelope, soapElement);
! this.ebxmlMessage = null;
}
--- 113,120 ----
}
! PKISignatureImpl(EbxmlMessage ebxmlMessage, SOAPEnvelope soapEnvelope,
! SOAPElement soapElement) throws SOAPException {
super(soapEnvelope, soapElement);
! this.ebxmlMessage = ebxmlMessage;
}
***************
*** 236,246 ****
throws SignatureException {
try {
- final SOAPPart soapPart = ebxmlMessage.getSOAPMessage().
- getSOAPPart();
- DocumentResult docResult = new DocumentResult();
- TransformerFactory.newInstance().newTransformer().
- transform(soapPart.getContent(), docResult);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
! (new XMLWriter(baos)).write(docResult.getDocument());
DocumentBuilderFactory factory = DocumentBuilderFactory.
newInstance();
--- 235,270 ----
throws SignatureException {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
! String fileName = ebxmlMessage.getFileName();
! if (fileName != null) {
! FileInputStream fis = new FileInputStream(fileName);
! int skipped = ebxmlMessage.getSOAPMessageFileOffset()[0];
! byte[] buffer = new byte[skipped];
! if (skipped > 0) {
! fis.read(buffer, 0, skipped);
! }
! int length = 0;
! for (int c = fis.read() ; c != -1 &&
! length < ebxmlMessage.getSOAPMessageFileOffset()[1] ;
! c = fis.read()) {
! baos.write(c);
! length++;
! }
! if (length != ebxmlMessage.getSOAPMessageFileOffset()[1]) {
! throw new VerifyException(ebxmlMessage.
! getSOAPMessageFileOffset()[1] + " bytes should be " +
! "read from <" + fileName + "> but only " + length +
! " bytes are successfully read");
! }
! fis.close();
! }
! else {
! final SOAPPart soapPart = ebxmlMessage.getSOAPMessage().
! getSOAPPart();
! DocumentResult docResult = new DocumentResult();
! TransformerFactory.newInstance().newTransformer().
! transform(soapPart.getContent(), docResult);
! (new XMLWriter(baos)).write(docResult.getDocument());
! }
DocumentBuilderFactory factory = DocumentBuilderFactory.
newInstance();
***************
*** 249,257 ****
final Document soapPartDocument = factory.newDocumentBuilder().
parse(new ByteArrayInputStream(baos.toByteArray()));
- final String soapHeaderName = soapPart.getEnvelope().getHeader().
- getElementName().getLocalName();
- final Element soapHeader = (Element) soapPartDocument.
- getElementsByTagNameNS(NAMESPACE_URI_SOAP_ENVELOPE,
- soapHeaderName).item(0);
ApacheXMLDSigner signature = new ApacheXMLDSigner();
--- 273,276 ----
***************
*** 326,330 ****
if (!name.equals(nsPrefix + NAMESPACE_PREFIX_DS) &&
! !name.equals(XML_NS_DECL_PREFIX)) {
addedChild.addAttribute(soapEnvelope.
createName(name), value);
--- 345,349 ----
if (!name.equals(nsPrefix + NAMESPACE_PREFIX_DS) &&
! !name.startsWith(XML_NS_DECL_PREFIX)) {
addedChild.addAttribute(soapEnvelope.
createName(name), value);
Index: Signature.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/Signature.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Signature.java 5 May 2003 08:45:07 -0000 1.7
--- Signature.java 16 Jul 2003 08:54:10 -0000 1.8
***************
*** 349,353 ****
static Signature newInstance(SOAPEnvelope soapEnvelope,
SOAPElement soapElement) throws SOAPException {
! return new PKISignatureImpl(soapEnvelope, soapElement);
}
--- 349,359 ----
static Signature newInstance(SOAPEnvelope soapEnvelope,
SOAPElement soapElement) throws SOAPException {
! return new PKISignatureImpl(null, soapEnvelope, soapElement);
! }
!
! static Signature newInstance(EbxmlMessage ebxmlMessage,
! SOAPEnvelope soapEnvelope, SOAPElement soapElement)
! throws SOAPException {
! return new PKISignatureImpl(ebxmlMessage, soapEnvelope, soapElement);
}
|
|
From: <cy...@us...> - 2003-07-11 03:50:40
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv7790
Modified Files:
Mail.java
Log Message:
Bug fix: if no payload is added, SOAPPart is base64-ed twice.
Index: Mail.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport/Mail.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -C2 -d -r1.39 -r1.40
*** Mail.java 17 Jun 2003 04:24:28 -0000 1.39
--- Mail.java 11 Jul 2003 03:50:35 -0000 1.40
***************
*** 517,534 ****
session = Session.getInstance(properties);
}
-
session.setDebug(debug);
- final SOAPMessage soapMessage = ebxmlMessage.getSOAPMessage();
final boolean hasAttachments = ebxmlMessage.getPayloadCount() > 0;
-
final ByteArrayOutputStream out = new ByteArrayOutputStream();
! ebxmlMessage.writeTo(
! out, MAIL_TRANSFER_ENCODING, MAIL_TRANSFER_ENCODING);
! String type = (String) ebxmlMessage.getMimeHeaders(
! MAIL_TRANSFER_ENCODING, MAIL_TRANSFER_ENCODING)
! .get(CONTENT_TYPE);
final AttachmentDataSource content =
! new AttachmentDataSource(out.toByteArray(), type);
MimeMessage mimeMessage = new MimeMessage(session);
MimeMultipart multipart = null;
--- 517,542 ----
session = Session.getInstance(properties);
}
session.setDebug(debug);
final boolean hasAttachments = ebxmlMessage.getPayloadCount() > 0;
final ByteArrayOutputStream out = new ByteArrayOutputStream();
! String contentType = null;
! if (hasAttachments) {
! contentType = Constants.MULTIPART_RELATED_TYPE + "\"" +
! EbxmlMessage.mimeBoundary + "\"; " +
! Constants.CHARACTER_SET + "=\"" +
! Constants.CHARACTER_ENCODING + "\"; " + Constants.START +
! "=\"<" + EbxmlMessage.SOAP_PART_CONTENT_ID + ">\"";
! ebxmlMessage.writeTo(out, MAIL_TRANSFER_ENCODING,
! MAIL_TRANSFER_ENCODING);
! }
! else {
! contentType = Constants.TEXT_XML_TYPE + "; " +
! Constants.CHARACTER_SET + "=\"" +
! Constants.CHARACTER_ENCODING + "\"";
! ebxmlMessage.writeTo(out);
! }
final AttachmentDataSource content =
! new AttachmentDataSource(out.toByteArray(), contentType);
MimeMessage mimeMessage = new MimeMessage(session);
MimeMultipart multipart = null;
|
|
From: <cy...@us...> - 2003-07-11 03:49:02
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv7716
Modified Files:
MessageServiceHandler.java
Log Message:
Change MIME boundary to be a static String.
Index: MessageServiceHandler.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageServiceHandler.java,v
retrieving revision 1.172
retrieving revision 1.173
diff -C2 -d -r1.172 -r1.173
*** MessageServiceHandler.java 27 Jun 2003 01:42:48 -0000 1.172
--- MessageServiceHandler.java 11 Jul 2003 03:48:59 -0000 1.173
***************
*** 1867,1871 ****
if (ret.getPayloadCount() > 0) {
contentType = Constants.MULTIPART_RELATED_TYPE
! + "\"" + ret.getMimeBoundary() + "\"; "
+ Constants.CHARACTER_SET + "=\""
+ Constants.CHARACTER_ENCODING + "\"; "
--- 1867,1871 ----
if (ret.getPayloadCount() > 0) {
contentType = Constants.MULTIPART_RELATED_TYPE
! + "\"" + EbxmlMessage.mimeBoundary + "\"; "
+ Constants.CHARACTER_SET + "=\""
+ Constants.CHARACTER_ENCODING + "\"; "
|
|
From: <cy...@us...> - 2003-07-11 03:48:15
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv7647
Modified Files:
EbxmlMessage.java
Log Message:
Change MIME boundary to be a static String.
Index: EbxmlMessage.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/EbxmlMessage.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** EbxmlMessage.java 17 Jun 2003 04:28:01 -0000 1.29
--- EbxmlMessage.java 11 Jul 2003 03:48:12 -0000 1.30
***************
*** 103,106 ****
--- 103,111 ----
public static final String SOAP_PART_CONTENT_ID = "soappart";
+ /**
+ * MIME boundary generated
+ */
+ public static final String mimeBoundary = "----=_BOUNDARY_01";
+
public static boolean needPatch = false;
***************
*** 159,167 ****
private String filename;
- /**
- * MIME boundary generated
- */
- private String mimeBoundary;
-
/** Constructs an <code>EbxmlMessage</code> using the default JAXM
<code>MessageFactory</code> implementation
--- 164,167 ----
***************
*** 1053,1057 ****
if (getPayloadCount() > 0) {
contentType = Constants.MULTIPART_RELATED_TYPE
! + "\"" + getMimeBoundary() + "\"; "
+ Constants.CHARACTER_SET + "=\""
+ Constants.CHARACTER_ENCODING + "\"; "
--- 1053,1057 ----
if (getPayloadCount() > 0) {
contentType = Constants.MULTIPART_RELATED_TYPE
! + "\"" + mimeBoundary + "\"; "
+ Constants.CHARACTER_SET + "=\""
+ Constants.CHARACTER_ENCODING + "\"; "
***************
*** 1126,1135 ****
}
- String boundary = getMimeBoundary();
String buffer;
byte[] bytes;
// print SOAP part
! buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + Constants.CRLF;
buffer = buffer + Constants.CONTENT_TYPE + ": "
+ Constants.TEXT_XML_TYPE + Constants.CRLF;
--- 1126,1134 ----
}
String buffer;
byte[] bytes;
// print SOAP part
! buffer = Constants.MIME_BOUNDARY_PREFIX + mimeBoundary + Constants.CRLF;
buffer = buffer + Constants.CONTENT_TYPE + ": "
+ Constants.TEXT_XML_TYPE + Constants.CRLF;
***************
*** 1159,1163 ****
PayloadContainer pc = (PayloadContainer) i.next();
! buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + Constants.CRLF;
buffer = buffer + Constants.CONTENT_TYPE + ": "
+ pc.getContentType() + Constants.CRLF;
--- 1158,1163 ----
PayloadContainer pc = (PayloadContainer) i.next();
! buffer = Constants.MIME_BOUNDARY_PREFIX + mimeBoundary +
! Constants.CRLF;
buffer = buffer + Constants.CONTENT_TYPE + ": "
+ pc.getContentType() + Constants.CRLF;
***************
*** 1209,1213 ****
// print last boundary
! buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + "--"
+ Constants.CRLF;
bytes = buffer.getBytes(Constants.CHARACTER_ENCODING);
--- 1209,1213 ----
// print last boundary
! buffer = Constants.MIME_BOUNDARY_PREFIX + mimeBoundary + "--"
+ Constants.CRLF;
bytes = buffer.getBytes(Constants.CHARACTER_ENCODING);
***************
*** 1252,1262 ****
// soapMessage.writeTo(out);
serialize(out, soapEncoding, payloadEncoding, false);
- }
-
- public String getMimeBoundary() {
- if (mimeBoundary == null) {
- mimeBoundary = "----=_BOUNDARY_01";
- }
- return mimeBoundary;
}
--- 1252,1255 ----
|
|
From: <kc...@us...> - 2003-07-08 07:15:43
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv19983/src/hk/hku/cecid/phoenix/message/handler
Modified Files:
Tag: b0931
Utility.java
Log Message:
update release name
Index: Utility.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/Utility.java,v
retrieving revision 1.18.2.11
retrieving revision 1.18.2.12
diff -C2 -d -r1.18.2.11 -r1.18.2.12
*** Utility.java 30 May 2003 02:52:02 -0000 1.18.2.11
--- Utility.java 8 Jul 2003 07:15:40 -0000 1.18.2.12
***************
*** 116,120 ****
* implementation.
*/
! private static final String RELEASE = "0.9.3.1-sp1";
/**
--- 116,120 ----
* implementation.
*/
! private static final String RELEASE = "0.9.3.1-sp2";
/**
|
|
From: <kc...@us...> - 2003-07-03 02:32:52
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv20012/src/hk/hku/cecid/phoenix/message/packaging
Modified Files:
Tag: b0931
ErrorList.java
Log Message:
bug fix: to set the highest severity to the ErrorList element
Index: ErrorList.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/ErrorList.java,v
retrieving revision 1.8.2.1
retrieving revision 1.8.2.2
diff -C2 -d -r1.8.2.1 -r1.8.2.2
*** ErrorList.java 9 Apr 2003 08:41:41 -0000 1.8.2.1
--- ErrorList.java 3 Jul 2003 02:32:50 -0000 1.8.2.2
***************
*** 491,494 ****
--- 491,496 ----
highestSeverity = severity;
}
+
+ addAttribute(ATTRIBUTE_HIGHEST_SEVERITY, highestSeverity);
}
}
|
|
From: <kc...@us...> - 2003-07-03 02:31:20
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv19905/src/hk/hku/cecid/phoenix/message/packaging
Modified Files:
ErrorList.java
Log Message:
bug fix: to set the highest severity to the ErrorList element
Index: ErrorList.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/ErrorList.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** ErrorList.java 9 Apr 2003 07:48:20 -0000 1.9
--- ErrorList.java 3 Jul 2003 02:31:17 -0000 1.10
***************
*** 491,494 ****
--- 491,496 ----
highestSeverity = severity;
}
+
+ addAttribute(ATTRIBUTE_HIGHEST_SEVERITY, highestSeverity);
}
}
|
|
From: <cy...@us...> - 2003-07-02 07:02:54
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv6825
Modified Files:
MessageProcessor.java
Log Message:
Bug fix: the delivery thread should be guarded by transaction, otherwise,
the thread would compete with the current thread which is storing the
error message.
Index: MessageProcessor.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageProcessor.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** MessageProcessor.java 18 Jun 2003 03:52:28 -0000 1.50
--- MessageProcessor.java 2 Jul 2003 07:02:51 -0000 1.51
***************
*** 727,731 ****
getApplicationContext(), mshConfig.
getMessageListener(), errorMessage);
! delivery.start();
tx.commit();
}
--- 727,731 ----
getApplicationContext(), mshConfig.
getMessageListener(), errorMessage);
! tx.addThread(delivery);
tx.commit();
}
|
|
From: <cy...@us...> - 2003-07-02 07:00:54
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv5906
Modified Files:
Tag: b0931
MessageProcessor.java
Log Message:
Bug fix: the delivery thread should be guarded by transaction, otherwise,
the thread would compete with the current thread which is storing the
error message.
Index: MessageProcessor.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageProcessor.java,v
retrieving revision 1.43.2.4
retrieving revision 1.43.2.5
diff -C2 -d -r1.43.2.4 -r1.43.2.5
*** MessageProcessor.java 16 May 2003 08:39:12 -0000 1.43.2.4
--- MessageProcessor.java 2 Jul 2003 07:00:52 -0000 1.43.2.5
***************
*** 712,716 ****
getApplicationContext(), mshConfig.
getMessageListener(), errorMessage);
! delivery.start();
tx.commit();
}
--- 712,716 ----
getApplicationContext(), mshConfig.
getMessageListener(), errorMessage);
! tx.addThread(delivery);
tx.commit();
}
|
|
From: <pj...@us...> - 2003-06-27 01:45:35
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv29671
Modified Files:
Reference.java
Log Message:
Added getDescriptionCount().
Index: Reference.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/Reference.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Reference.java 10 Jun 2003 02:22:49 -0000 1.9
--- Reference.java 27 Jun 2003 01:45:30 -0000 1.10
***************
*** 413,415 ****
--- 413,424 ----
return descriptions.iterator();
}
+
+ /**
+ * Gets the number of <code>Description</code> elements in this <code>Reference</code>.
+ *
+ * @return The number of <code>Description</code> elements.
+ */
+ public int getDescriptionCount() {
+ return descriptions.size();
+ }
}
|
|
From: <pj...@us...> - 2003-06-27 01:45:01
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv29577
Modified Files:
MessageHeader.java
Log Message:
Added getDescriptionCount().
Index: MessageHeader.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/MessageHeader.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** MessageHeader.java 2 Jun 2003 04:22:18 -0000 1.12
--- MessageHeader.java 27 Jun 2003 01:44:58 -0000 1.13
***************
*** 1300,1303 ****
--- 1300,1312 ----
}
+ /**
+ * Gets the number of <code>Description</code> elements in this <code>MessageHeader</code>.
+ *
+ * @return The number of <code>Description</code> elements.
+ */
+ public int getDescriptionCount() {
+ return descriptions.size();
+ }
+
/**
* Add RefToMessageId, TimeToLive, DuplicateElimination and
|
|
From: <pj...@us...> - 2003-06-27 01:42:52
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv29293
Modified Files:
MessageServiceHandler.java
Log Message:
Added exception stack to logger.error() for CertResolver init
Index: MessageServiceHandler.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageServiceHandler.java,v
retrieving revision 1.171
retrieving revision 1.172
diff -C2 -d -r1.171 -r1.172
*** MessageServiceHandler.java 17 Jun 2003 07:49:34 -0000 1.171
--- MessageServiceHandler.java 27 Jun 2003 01:42:48 -0000 1.172
***************
*** 866,870 ****
String err = ErrorMessages.getMessage
(ErrorMessages.ERR_HERMES_INIT_ERROR, e.getMessage());
! logger.error(err);
throw new InitializationException(err);
}
--- 866,870 ----
String err = ErrorMessages.getMessage
(ErrorMessages.ERR_HERMES_INIT_ERROR, e.getMessage());
! logger.error(err, e);
throw new InitializationException(err);
}
|
|
From: <cy...@us...> - 2003-06-21 03:08:29
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv11270
Modified Files:
Http.java
Log Message:
Bug fix: a typo, "value" should be assigned to getHeaderField() instead of
getHeaderFieldKey().
Index: Http.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport/Http.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Http.java 17 Jun 2003 04:23:33 -0000 1.3
--- Http.java 21 Jun 2003 03:08:25 -0000 1.4
***************
*** 264,268 ****
}
key = connection.getHeaderFieldKey(i);
! value = connection.getHeaderFieldKey(i);
}
InputStream is = connection.getInputStream();
--- 264,268 ----
}
key = connection.getHeaderFieldKey(i);
! value = connection.getHeaderField(i);
}
InputStream is = connection.getInputStream();
|
|
From: <cy...@us...> - 2003-06-18 09:18:53
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv21321
Modified Files:
Tag: b0931
AckRequested.java HeaderElement.java SyncReply.java
Log Message:
Bug fix: "urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" should be added to
"actor" of AckRequested.
Index: AckRequested.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/AckRequested.java,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -C2 -d -r1.5.2.1 -r1.5.2.2
*** AckRequested.java 9 Apr 2003 08:41:40 -0000 1.5.2.1
--- AckRequested.java 18 Jun 2003 09:18:50 -0000 1.5.2.2
***************
*** 109,112 ****
--- 109,113 ----
this.signed = signed;
addAttribute(ATTRIBUTE_SIGNED, String.valueOf(signed));
+ setActor(ACTOR_TO_PARTY_MSH_URN);
}
Index: HeaderElement.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/HeaderElement.java,v
retrieving revision 1.3.4.1
retrieving revision 1.3.4.2
diff -C2 -d -r1.3.4.1 -r1.3.4.2
*** HeaderElement.java 9 Apr 2003 08:41:41 -0000 1.3.4.1
--- HeaderElement.java 18 Jun 2003 09:18:50 -0000 1.3.4.2
***************
*** 90,93 ****
--- 90,96 ----
"urn:oasis:names:tc:ebxml-msg:actor:nextMSH";
+ static final String ACTOR_TO_PARTY_MSH_URN =
+ "urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH";
+
static final String ACTOR_NEXT_MSH_SCHEMAS =
"http://schemas.xmlsoap.org/soap/actor/next";
Index: SyncReply.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/SyncReply.java,v
retrieving revision 1.2.2.3
retrieving revision 1.2.2.4
diff -C2 -d -r1.2.2.3 -r1.2.2.4
*** SyncReply.java 20 May 2003 08:58:13 -0000 1.2.2.3
--- SyncReply.java 18 Jun 2003 09:18:50 -0000 1.2.2.4
***************
*** 86,92 ****
static final String SYNC_REPLY = "SyncReply";
- static final String ACTOR_NEXT_MSH_SCHEMAS =
- "http://schemas.xmlsoap.org/soap/actor/next";
-
/**
* Constructs a <code>SyncReply</code> with the given mandatory
--- 86,89 ----
|
|
From: <cy...@us...> - 2003-06-18 09:14:46
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv20679
Modified Files:
AckRequested.java SyncReply.java HeaderElement.java
Log Message:
Bug fix: "urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" should be added to
"actor" of AckRequested.
Index: AckRequested.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/AckRequested.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** AckRequested.java 9 Apr 2003 07:48:16 -0000 1.6
--- AckRequested.java 18 Jun 2003 09:14:43 -0000 1.7
***************
*** 109,112 ****
--- 109,113 ----
this.signed = signed;
addAttribute(ATTRIBUTE_SIGNED, String.valueOf(signed));
+ setActor(ACTOR_TO_PARTY_MSH_URN);
}
Index: SyncReply.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/SyncReply.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** SyncReply.java 20 May 2003 09:00:41 -0000 1.5
--- SyncReply.java 18 Jun 2003 09:14:43 -0000 1.6
***************
*** 86,92 ****
static final String SYNC_REPLY = "SyncReply";
- static final String ACTOR_NEXT_MSH_SCHEMAS =
- "http://schemas.xmlsoap.org/soap/actor/next";
-
/**
* Constructs a <code>SyncReply</code> with the given mandatory
--- 86,89 ----
Index: HeaderElement.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/HeaderElement.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** HeaderElement.java 10 Jun 2003 02:22:48 -0000 1.5
--- HeaderElement.java 18 Jun 2003 09:14:43 -0000 1.6
***************
*** 90,93 ****
--- 90,96 ----
"urn:oasis:names:tc:ebxml-msg:actor:nextMSH";
+ static final String ACTOR_TO_PARTY_MSH_URN =
+ "urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH";
+
static final String ACTOR_NEXT_MSH_SCHEMAS =
"http://schemas.xmlsoap.org/soap/actor/next";
|
|
From: <kc...@us...> - 2003-06-18 03:52:31
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv14962/src/hk/hku/cecid/phoenix/message/handler
Modified Files:
MessageProcessor.java
Log Message:
fixed a bug which make Hermes cannot retry
Index: MessageProcessor.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageProcessor.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** MessageProcessor.java 17 Jun 2003 07:15:59 -0000 1.49
--- MessageProcessor.java 18 Jun 2003 03:52:28 -0000 1.50
***************
*** 477,481 ****
logger.debug(ie.getMessage());
! if (isAppMessage) {
currentTry = retries - 1;
}
--- 477,481 ----
logger.debug(ie.getMessage());
! if (!isAppMessage) {
currentTry = retries - 1;
}
|
|
From: <kc...@us...> - 2003-06-17 09:45:08
|
Update of /cvsroot/ebxmlms/ebxmlms/doc
In directory sc8-pr-cvs1:/tmp/cvs-serv32162
Modified Files:
Tag: b0931
release.txt
Log Message:
update changes
Index: release.txt
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/doc/release.txt,v
retrieving revision 1.61
retrieving revision 1.61.2.1
diff -C2 -d -r1.61 -r1.61.2.1
*** release.txt 3 Mar 2003 06:35:15 -0000 1.61
--- release.txt 17 Jun 2003 09:45:03 -0000 1.61.2.1
***************
*** 213,214 ****
--- 213,316 ----
Version 0.9.3.1
===============
+ Configuration:
+ - Removed all static initializers.
+ - Switch to use Apache Log4J.
+ - Upgrade to log4j-1.2.8.jar, JavaMail 1.3, Xalan 2.5, Xerces 2.4 and
+ Apache XML security library 1.0.5D2
+ - Assures the log path exists before initializing Log4J (Patch contributed by
+ Jason van Zyl).
+ - Added interpolation to property files (Patch contributed by Jason van Zyl)
+ - Added optional properties at client side to limit the maximum number of
+ payload and maximum payload size
+ - Integrate the previous "common" libraries to the main source tree. The file
+ "common.jar" is removed.
+ - Integrate the previous "pki" libraries to the main source tree. The file
+ "pki.jar" is removed.
+ - Restructured log messages to add error code
+ - Added selectable signing algorithm for signing ack in property files
+ Operation:
+ - Factorize all useful constants into a single Constants class.
+ - Implemented partial transaction, which is a group of database and file system
+ operations that are committed and rolled back atomically. Now if an error
+ occurred during message dispatching (receiving of message) or message sending,
+ all database and file system operations are undone.
+ - Now checking on timestamp is done when a message arrives
+ - Defer the start of the thread to the time when the transaction commits. This
+ allows better resource utilization under heavy load (since database
+ connections are freed before a new thread, which possibly uses another
+ database connection, is started), and also solves synchronization issues.
+ - Allow client-side message polling to be halted/resumed.
+ - Disallow a message having the same mesage ID to be sent twice on the
+ application level.
+ - Modified the behaviour of archive(Date, Date). Now all the messages that are
+ in the time range (inclusive) are archived and nothing more.
+ - Added "archive by date and application context". Overloaded "archive()" API
+ in the Request class to support three different types of archival operations:
+ archive by date, by application context, and by both criteria.
+ - Use UTC time for all date/time parameter values and exported results.
+ - Allows archive operation in both normal and suspended mode.
+ - Bug fix: Previously a disabled mshConfig is stored in database, but when the
+ servlet is restarted, it is still reloaded into the mshConnection table,
+ causing the message dispatcher to encounter a disabled mshConfig and
+ resulting in Unknown Application Context error. Now disabled mshConfig is
+ skipped in initialization phase to fix this error.
+ - Bug fix: currently message loss may result if two threads poll for messages
+ using the same application context. A lock is now placed to serialize message
+ polling operations if the appContexts are the same.
+ - Bug fix: Null pointer exception results if the message repository directory
+ cannot be written. Now it throws exception that is properly handled by the
+ Transaction object.
+ - syncReply mode = "none", "mshSignalsOnly" can be properly handled.
+ - Added CertResolver and ToMshUrlResolver mechanism to let user customize
+ the location of the certificate for verifying digital signature and the
+ outgoing URL endpoint of sending out messages
+ - Added time out value in POP3 polling thread
+ - MessageServiceHandler.deliverToApplication() is changed from a blocking
+ method to become an execution thread.
+ - StatusReponse and Pong messages are delivered to application.
+ - Bug fix: certificate path verifier result now checked
+ - Modify request. Now it adds MessageOrder and SyncReply automatically if those
+ parameters are passed in in constructor.
+ - Bug fix: now, error message will be generated and sent back to the sender when
+ an error message is received with unknown ref to message id
+ Packaging:
+ - Bug fix: fromUTCString now supports fractional seconds (truncated)
+ - Make Manifest, Manifest's methods and ErrorList's addError() methods public
+ such that more descriptions and errors can be added to Manifest and ErrorList.
+ - Patch the missing <> around the Content-Id in payload when using JAXM library.
+ This patch ensures the message serialization and deserialization works no
+ matter JAXM or AXIS is used.
+ - Bug fix: AttachmentDataSource should take Content-Transfer-Encoding into
+ account in order to get a correct InputStream().
+ - Add getReceivedMessageIds() and receive(messageId) in Request, add
+ getUndeliveredMessageIds() and getMessageById(messageId) in
+ MessageServiceHandler and add NoMessageListenerImpl. This supports client
+ to get received and undelivered messages on demand.
+ - Added content ID to SOAP part
+ - Implement private writeObject() and readObject() in all Serializable
+ classes such that only those necessary data memeber fields are written
+ properly during serialization. This reduces the chance of incompatibility
+ when the implementation changes for future releases.
+ - Add methods to get and set optional role attribute in Reference.
+ - Add SignatureReference that represents the <ds:Reference> element under
+ Acknowledgment.
+ - Add verify() method in EbxmlMessage to make it symmetric with sign()
+ Database:
+ - Bug fix: Database connection leakage on unexpected exceptions.
+ - Bug Fix: "archiveByDate" function, when used with SQL Server, results in a SQL
+ exception "cannot connvert arithmetic data type". This is fixed by using
+ parameterized query when selecting records.
+ - Allow database transaction isolation level to be configurable through
+ msh.properties.xml (Patch contributed by Jason van Zyl).
+ - Added one more test when checking table schema on startup: if the schema
+ check fail, we do a select * on the table before creating the table. If the
+ select (*) returns successfully, we mark the operation fail and report
+ properly.
+ - Bug fix: Oracle database would create "integer" data type as "numeric"
+ data type such that those "integer" columns will be skipped during
+ backup. Now, case statement is added to handle "numeric" data type. To
+ play safe, other data types such as "bigint", "decimal" and "smallint"
+ are handled as well. If a column data type is not recognized, exception
+ will be thrown.
+ Monitor:
+ - Added from party type, to party type, service type input boxes in monitor
|
|
From: <kc...@us...> - 2003-06-17 09:44:42
|
Update of /cvsroot/ebxmlms/ebxmlms/doc In directory sc8-pr-cvs1:/tmp/cvs-serv32082 Modified Files: change.txt release.txt Log Message: update changes Index: change.txt =================================================================== RCS file: /cvsroot/ebxmlms/ebxmlms/doc/change.txt,v retrieving revision 1.99 retrieving revision 1.100 diff -C2 -d -r1.99 -r1.100 *** change.txt 2 Jun 2003 02:26:40 -0000 1.99 --- change.txt 17 Jun 2003 09:44:38 -0000 1.100 *************** *** 628,631 **** --- 628,633 ---- Modify request. Now it adds MessageOrder and SyncReply automatically if those parameters are passed in in constructor. + bug fixed: cert path verifier result not checked + Version 1.0.0.0 =============== *************** *** 653,654 **** --- 655,660 ---- bug fixed: cert path verifier result not checked + + changed to use full file-based handling of payload: i.e. not to read the payload from file system until sending out to network + + not to retry sending ACK Index: release.txt =================================================================== RCS file: /cvsroot/ebxmlms/ebxmlms/doc/release.txt,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** release.txt 3 Mar 2003 06:35:15 -0000 1.61 --- release.txt 17 Jun 2003 09:44:38 -0000 1.62 *************** *** 213,214 **** --- 213,320 ---- Version 0.9.3.1 =============== + Configuration: + - Removed all static initializers. + - Switch to use Apache Log4J. + - Upgrade to log4j-1.2.8.jar, JavaMail 1.3, Xalan 2.5, Xerces 2.4 and + Apache XML security library 1.0.5D2 + - Assures the log path exists before initializing Log4J (Patch contributed by + Jason van Zyl). + - Added interpolation to property files (Patch contributed by Jason van Zyl) + - Added optional properties at client side to limit the maximum number of + payload and maximum payload size + - Integrate the previous "common" libraries to the main source tree. The file + "common.jar" is removed. + - Integrate the previous "pki" libraries to the main source tree. The file + "pki.jar" is removed. + - Restructured log messages to add error code + - Added selectable signing algorithm for signing ack in property files + Operation: + - Factorize all useful constants into a single Constants class. + - Implemented partial transaction, which is a group of database and file system + operations that are committed and rolled back atomically. Now if an error + occurred during message dispatching (receiving of message) or message sending, + all database and file system operations are undone. + - Now checking on timestamp is done when a message arrives + - Defer the start of the thread to the time when the transaction commits. This + allows better resource utilization under heavy load (since database + connections are freed before a new thread, which possibly uses another + database connection, is started), and also solves synchronization issues. + - Allow client-side message polling to be halted/resumed. + - Disallow a message having the same mesage ID to be sent twice on the + application level. + - Modified the behaviour of archive(Date, Date). Now all the messages that are + in the time range (inclusive) are archived and nothing more. + - Added "archive by date and application context". Overloaded "archive()" API + in the Request class to support three different types of archival operations: + archive by date, by application context, and by both criteria. + - Use UTC time for all date/time parameter values and exported results. + - Allows archive operation in both normal and suspended mode. + - Bug fix: Previously a disabled mshConfig is stored in database, but when the + servlet is restarted, it is still reloaded into the mshConnection table, + causing the message dispatcher to encounter a disabled mshConfig and + resulting in Unknown Application Context error. Now disabled mshConfig is + skipped in initialization phase to fix this error. + - Bug fix: currently message loss may result if two threads poll for messages + using the same application context. A lock is now placed to serialize message + polling operations if the appContexts are the same. + - Bug fix: Null pointer exception results if the message repository directory + cannot be written. Now it throws exception that is properly handled by the + Transaction object. + - syncReply mode = "none", "mshSignalsOnly" can be properly handled. + - Added CertResolver and ToMshUrlResolver mechanism to let user customize + the location of the certificate for verifying digital signature and the + outgoing URL endpoint of sending out messages + - Added time out value in POP3 polling thread + - MessageServiceHandler.deliverToApplication() is changed from a blocking + method to become an execution thread. + - StatusReponse and Pong messages are delivered to application. + - Bug fix: certificate path verifier result now checked + - Modify request. Now it adds MessageOrder and SyncReply automatically if those + parameters are passed in in constructor. + - Bug fix: now, error message will be generated and sent back to the sender when + an error message is received with unknown ref to message id + Packaging: + - Bug fix: fromUTCString now supports fractional seconds (truncated) + - Make Manifest, Manifest's methods and ErrorList's addError() methods public + such that more descriptions and errors can be added to Manifest and ErrorList. + - Patch the missing <> around the Content-Id in payload when using JAXM library. + This patch ensures the message serialization and deserialization works no + matter JAXM or AXIS is used. + - Bug fix: AttachmentDataSource should take Content-Transfer-Encoding into + account in order to get a correct InputStream(). + - Add getReceivedMessageIds() and receive(messageId) in Request, add + getUndeliveredMessageIds() and getMessageById(messageId) in + MessageServiceHandler and add NoMessageListenerImpl. This supports client + to get received and undelivered messages on demand. + - Added content ID to SOAP part + - Implement private writeObject() and readObject() in all Serializable + classes such that only those necessary data memeber fields are written + properly during serialization. This reduces the chance of incompatibility + when the implementation changes for future releases. + - Add methods to get and set optional role attribute in Reference. + - Add SignatureReference that represents the <ds:Reference> element under + Acknowledgment. + - Add verify() method in EbxmlMessage to make it symmetric with sign() + Database: + - Bug fix: Database connection leakage on unexpected exceptions. + - Bug Fix: "archiveByDate" function, when used with SQL Server, results in a SQL + exception "cannot connvert arithmetic data type". This is fixed by using + parameterized query when selecting records. + - Allow database transaction isolation level to be configurable through + msh.properties.xml (Patch contributed by Jason van Zyl). + - Added one more test when checking table schema on startup: if the schema + check fail, we do a select * on the table before creating the table. If the + select (*) returns successfully, we mark the operation fail and report + properly. + - Bug fix: Oracle database would create "integer" data type as "numeric" + data type such that those "integer" columns will be skipped during + backup. Now, case statement is added to handle "numeric" data type. To + play safe, other data types such as "bigint", "decimal" and "smallint" + are handled as well. If a column data type is not recognized, exception + will be thrown. + Monitor: + - Added from party type, to party type, service type input boxes in monitor + + + Version 1.0.0.0 + =============== |
|
From: <kc...@us...> - 2003-06-17 07:49:38
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv17524/src/hk/hku/cecid/phoenix/message/handler
Modified Files:
MessageServiceHandler.java
Log Message:
set correct content type when sending message from server back to request
Index: MessageServiceHandler.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageServiceHandler.java,v
retrieving revision 1.170
retrieving revision 1.171
diff -C2 -d -r1.170 -r1.171
*** MessageServiceHandler.java 17 Jun 2003 04:28:01 -0000 1.170
--- MessageServiceHandler.java 17 Jun 2003 07:49:34 -0000 1.171
***************
*** 1940,1945 ****
if (shouldBeDelivered) {
messageServer.setFileDeliveryStatus(fileName, true, tx);
! String contentType = ebxmlMessage.getSOAPMessage().
! getMimeHeaders().getHeader(Constants.CONTENT_TYPE)[0];
response.setContentType(contentType);
response.setStatus(HttpServletResponse.SC_OK);
--- 1940,1949 ----
if (shouldBeDelivered) {
messageServer.setFileDeliveryStatus(fileName, true, tx);
! // String contentType = ebxmlMessage.getSOAPMessage().
! // getMimeHeaders().getHeader(Constants.CONTENT_TYPE)[0];
! String contentType = (String) ebxmlMessage.getMimeHeaders(
! Constants.DEFAULT_CONTENT_TRANSFER_ENCODING,
! Constants.DEFAULT_CONTENT_TRANSFER_ENCODING)
! .get(Constants.CONTENT_TYPE);
response.setContentType(contentType);
response.setStatus(HttpServletResponse.SC_OK);
|
|
From: <kc...@us...> - 2003-06-17 07:16:02
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv12574/src/hk/hku/cecid/phoenix/message/handler
Modified Files:
MessageProcessor.java
Log Message:
ACK will not retry
Index: MessageProcessor.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageProcessor.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** MessageProcessor.java 27 May 2003 06:51:09 -0000 1.48
--- MessageProcessor.java 17 Jun 2003 07:15:59 -0000 1.49
***************
*** 476,479 ****
--- 476,484 ----
catch (InterruptedException ie) {
logger.debug(ie.getMessage());
+
+ if (isAppMessage) {
+ currentTry = retries - 1;
+ }
+
if (currentTry == (retries - 1) || isShutDown()) {
break;
|
|
From: <kc...@us...> - 2003-06-17 04:28:04
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging
In directory sc8-pr-cvs1:/tmp/cvs-serv27446/src/hk/hku/cecid/phoenix/message/packaging
Modified Files:
EbxmlMessage.java
Log Message:
significant commit: we throw away the dependency on JAXM for serialization of
SOAP message. now, we control the MIME headers, content transfer encoding and
serialization of SOAP messages. The sole purpose is to support reading of
payload data ONLY when sending out. In the past, JAXM will load the payload
to memory for preparing data, which will limits the maximum size of the payload
to be sent.
Index: EbxmlMessage.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/packaging/EbxmlMessage.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** EbxmlMessage.java 6 May 2003 06:17:42 -0000 1.28
--- EbxmlMessage.java 17 Jun 2003 04:28:01 -0000 1.29
***************
*** 77,82 ****
--- 77,84 ----
import java.util.Iterator;
import java.util.HashMap;
+ import java.util.Map;
import javax.xml.soap.*;
import javax.activation.DataHandler;
+ import javax.mail.internet.MimeUtility;
/**
***************
*** 150,154 ****
* ebXML message payloads as SOAP attachments.
*/
! private final ArrayList payloadContainers;
/**
--- 152,156 ----
* ebXML message payloads as SOAP attachments.
*/
! private ArrayList payloadContainers;
/**
***************
*** 157,160 ****
--- 159,167 ----
private String filename;
+ /**
+ * MIME boundary generated
+ */
+ private String mimeBoundary;
+
/** Constructs an <code>EbxmlMessage</code> using the default JAXM
<code>MessageFactory</code> implementation
***************
*** 948,952 ****
}
payloadContainers.add(payload);
! soapMessage.addAttachmentPart(attachment);
return payload;
--- 955,962 ----
}
payloadContainers.add(payload);
!
! // we now keep the SOAP message object away from attachment to avoid
! // it to load the payload to memory
! // soapMessage.addAttachmentPart(attachment);
return payload;
***************
*** 964,967 ****
--- 974,989 ----
/**
+ * Sets the <code>PayloadContainer</code>
+ *
+ * @param contentId
+ * @return The old payload container as an array list
+ */
+ public ArrayList setPayloadContainers(ArrayList payloads) {
+ ArrayList oldPayloads = this.payloadContainers;
+ this.payloadContainers = payloads;
+ return oldPayloads;
+ }
+
+ /**
* Gets the payload that is identified by the given content ID.
*
***************
*** 980,983 ****
--- 1002,1018 ----
}
+ /**
+ * Gets the number of payloads in this ebXML message
+ *
+ * @return the number of payloads
+ */
+ public int getPayloadCount() {
+ return payloadContainers.size();
+ }
+
+ /**
+ * Gets the Manifest element in this ebXML message
+ * @return Manifest element
+ */
public Manifest getManifest() {
return headerContainer.getManifest();
***************
*** 1005,1008 ****
--- 1040,1222 ----
}
+ /**
+ * Gets the MIME headers of this ebXML message
+ *
+ * @return the MIME headers of this ebXML message
+ */
+ public Map getMimeHeaders(String soapEncoding, String payloadEncoding)
+ throws IOException, SOAPException {
+ HashMap headers = new HashMap();
+
+ // fill in Content-Type
+ String contentType;
+ if (getPayloadCount() > 0) {
+ contentType = Constants.MULTIPART_RELATED_TYPE
+ + "\"" + getMimeBoundary() + "\"; "
+ + Constants.CHARACTER_SET + "=\""
+ + Constants.CHARACTER_ENCODING + "\"; "
+ + Constants.START + "=\"<"
+ + SOAP_PART_CONTENT_ID + ">\"";
+ }
+ else {
+ contentType = Constants.TEXT_XML_TYPE + "; "
+ + Constants.CHARACTER_SET + "=\""
+ + Constants.CHARACTER_ENCODING + "\"";
+ }
+ headers.put(Constants.CONTENT_TYPE, contentType);
+
+ // fill in Content-Length
+ headers.put(Constants.CONTENT_LENGTH,
+ String.valueOf(
+ serialize(null, soapEncoding, payloadEncoding, true)));
+
+ // fill in SOAPAction
+ headers.put(SOAP_ACTION, SOAP_ACTION_VALUE);
+
+ return headers;
+ }
+
+ /**
+ * Walks through the serialization process to get the content length.
+ * It can do the actually serialization also optionally
+ *
+ * @param out <code>OutputStream</code> to write the message to.
+ * @param encoding content transfer encoding to be applied to payload
+ * @param getLengthOnly get length only and do no actual serialization
+ * @return the content length of the serialization
+ * @throws IOException
+ * @throws SOAPException
+ */
+ private long serialize(OutputStream out, String soapEncoding,
+ String payloadEncoding, boolean getLengthOnly)
+ throws IOException, SOAPException {
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ OutputStream os;
+ try {
+ os = MimeUtility.encode(baos, soapEncoding);
+ }
+ catch (Exception e) {
+ throw new SOAPException(
+ "Content-Transfer-Encoding encode error: "
+ + e.getMessage());
+ }
+ soapMessage.writeTo(os);
+ long soapMessageLength = baos.toByteArray().length;
+ long totalLength = 0;
+
+ try {
+ os = MimeUtility.encode(out, soapEncoding);
+ }
+ catch (Exception e) {
+ throw new SOAPException(
+ "Content-Transfer-Encoding encode error: "
+ + e.getMessage());
+ }
+
+ Iterator i = getPayloadContainers();
+
+ // not multipart
+ if (!i.hasNext()) {
+ if (!getLengthOnly) {
+ soapMessage.writeTo(os);
+ os.flush();
+ }
+ return soapMessageLength;
+ }
+
+ String boundary = getMimeBoundary();
+ String buffer;
+ byte[] bytes;
+
+ // print SOAP part
+ buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_TYPE + ": "
+ + Constants.TEXT_XML_TYPE + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_ID + ": "
+ + soapMessage.getSOAPPart().getContentId() + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_TRANSFER_ENCODING + ": "
+ + soapEncoding + Constants.CRLF;
+ buffer = buffer + Constants.CRLF;
+ bytes = buffer.getBytes(Constants.CHARACTER_ENCODING);
+ totalLength += bytes.length;
+ totalLength += soapMessageLength;
+ if (!getLengthOnly) {
+ out.write(bytes);
+ out.flush();
+ soapMessage.writeTo(os);
+ os.flush();
+ }
+ bytes = Constants.CRLF.getBytes(Constants.CHARACTER_ENCODING);
+ totalLength += bytes.length;
+ if (!getLengthOnly) {
+ out.write(bytes);
+ out.flush();
+ }
+
+ // print payloads
+ while (i.hasNext()) {
+ PayloadContainer pc = (PayloadContainer) i.next();
+
+ buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_TYPE + ": "
+ + pc.getContentType() + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_ID + ": "
+ + (needPatch ? "<"+pc.getContentId()+">" : pc.getContentId())
+ + Constants.CRLF;
+ buffer = buffer + Constants.CONTENT_TRANSFER_ENCODING + ": "
+ + payloadEncoding + Constants.CRLF;
+ buffer = buffer + Constants.CRLF;
+ bytes = buffer.getBytes(Constants.CHARACTER_ENCODING);
+ totalLength += bytes.length;
+ if (!getLengthOnly) {
+ out.write(bytes);
+ out.flush();
+ }
+
+ long payloadLength = pc.getContentLength();
+ if (payloadLength == -1 || !getLengthOnly ||
+ !payloadEncoding.equalsIgnoreCase("binary")) {
+ InputStream in = pc.getDataHandler().getInputStream();
+ byte[] b = new byte[4096];
+ int bytesRead;
+ long totalBytes = 0;
+ try {
+ os = MimeUtility.encode(out, payloadEncoding);
+ }
+ catch (Exception e) {
+ throw new SOAPException(
+ "Content-Transfer-Encoding encode error: "
+ + e.getMessage());
+ }
+ while ((bytesRead = in.read(b)) > 0) {
+ totalBytes += bytesRead;
+ if (!getLengthOnly) {
+ os.write(b, 0, bytesRead);
+ os.flush();
+ }
+ }
+ payloadLength = totalBytes;
+ }
+ totalLength += payloadLength;
+
+ bytes = Constants.CRLF.getBytes(Constants.CHARACTER_ENCODING);
+ totalLength += bytes.length;
+ if (!getLengthOnly) {
+ out.write(bytes);
+ }
+ }
+
+ // print last boundary
+ buffer = Constants.MIME_BOUNDARY_PREFIX + boundary + "--"
+ + Constants.CRLF;
+ bytes = buffer.getBytes(Constants.CHARACTER_ENCODING);
+ totalLength += bytes.length;
+ if (!getLengthOnly) {
+ out.write(bytes);
+ }
+ return totalLength;
+ }
+
/** Writes the encapsulated <code>SOAPMessage</code> to the given
* output stream. The externalization format is as defined by the
***************
*** 1013,1017 ****
public void writeTo(OutputStream out)
throws IOException, SOAPException {
! soapMessage.writeTo(out);
}
--- 1227,1262 ----
public void writeTo(OutputStream out)
throws IOException, SOAPException {
!
! // we now keep the SOAP message object away from attachment to avoid
! // it to load the payload to memory, therefore we are doing our own
! // writeTo() here
! // soapMessage.writeTo(out);
! serialize(out, Constants.DEFAULT_CONTENT_TRANSFER_ENCODING,
! Constants.DEFAULT_CONTENT_TRANSFER_ENCODING, false);
! }
!
! /** Writes the encapsulated <code>SOAPMessage</code> to the given
! * output stream. The externalization format is as defined by the
! * SOAP 1.1 with Attachments Specification.
! *
! * @param out <code>OutputStream</code> to write the message to.
! * @param encoding the content transfer encoding to be applied to payload
! */
! public void writeTo(OutputStream out, String soapEncoding,
! String payloadEncoding)
! throws IOException, SOAPException {
!
! // we now keep the SOAP message object away from attachment to avoid
! // it to load the payload to memory, therefore we are doing our own
! // writeTo() here
! // soapMessage.writeTo(out);
! serialize(out, soapEncoding, payloadEncoding, false);
! }
!
! public String getMimeBoundary() {
! if (mimeBoundary == null) {
! mimeBoundary = "----=_BOUNDARY_01";
! }
! return mimeBoundary;
}
|
|
From: <kc...@us...> - 2003-06-17 04:28:03
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler In directory sc8-pr-cvs1:/tmp/cvs-serv27446/src/hk/hku/cecid/phoenix/message/handler Modified Files: MessageServer.java MessageServiceHandler.java Log Message: significant commit: we throw away the dependency on JAXM for serialization of SOAP message. now, we control the MIME headers, content transfer encoding and serialization of SOAP messages. The sole purpose is to support reading of payload data ONLY when sending out. In the past, JAXM will load the payload to memory for preparing data, which will limits the maximum size of the payload to be sent. Index: MessageServer.java =================================================================== RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageServer.java,v retrieving revision 1.138 retrieving revision 1.139 diff -C2 -d -r1.138 -r1.139 *** MessageServer.java 29 May 2003 14:20:16 -0000 1.138 --- MessageServer.java 17 Jun 2003 04:28:01 -0000 1.139 *************** *** 76,79 **** --- 76,80 ---- import hk.hku.cecid.phoenix.message.packaging.MessageHeader; import hk.hku.cecid.phoenix.message.packaging.MessageOrder; + import hk.hku.cecid.phoenix.message.packaging.PayloadContainer; import java.io.*; import java.net.URL; *************** *** 3578,3581 **** --- 3579,3583 ---- } + ArrayList payloads = new ArrayList(); if (boundary != null && withAttachments) { lastIndex = line.length - 1; *************** *** 3706,3710 **** } } ! soapMessage.addAttachmentPart(attachment); offset += (length + line.length); --- 3708,3725 ---- } } ! // soapMessage.addAttachmentPart(attachment); ! if (EbxmlMessage.needPatch) { ! String contentId = attachment.getContentId(); ! if (!contentId.startsWith("<") || ! !contentId.endsWith(">")) { ! contentId = "<" + contentId + ">"; ! } ! payloads.add(new PayloadContainer(attachment, ! contentId, null)); ! } ! else { ! payloads.add(new PayloadContainer(attachment, ! attachment.getContentId(), null)); ! } offset += (length + line.length); *************** *** 3724,3727 **** --- 3739,3743 ---- if (withAttachments) { EbxmlMessage message = new EbxmlMessage(soapMessage); + message.setPayloadContainers(payloads); message.setFileName(file.getCanonicalPath()); logger.debug("<= MessageServer.getMessageFromFile"); Index: MessageServiceHandler.java =================================================================== RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/MessageServiceHandler.java,v retrieving revision 1.169 retrieving revision 1.170 diff -C2 -d -r1.169 -r1.170 *** MessageServiceHandler.java 27 May 2003 02:44:56 -0000 1.169 --- MessageServiceHandler.java 17 Jun 2003 04:28:01 -0000 1.170 *************** *** 1864,1869 **** else { try { ! final String contentType = ret.getSOAPMessage(). ! getMimeHeaders().getHeader(Constants.CONTENT_TYPE)[0]; response.setContentType(contentType); response.setStatus(HttpServletResponse.SC_OK); --- 1864,1880 ---- else { try { ! String contentType; ! if (ret.getPayloadCount() > 0) { ! contentType = Constants.MULTIPART_RELATED_TYPE ! + "\"" + ret.getMimeBoundary() + "\"; " ! + Constants.CHARACTER_SET + "=\"" ! + Constants.CHARACTER_ENCODING + "\"; " ! + Constants.START + "=\"<" ! + EbxmlMessage.SOAP_PART_CONTENT_ID + ">\""; ! } ! else { ! contentType = ret.getSOAPMessage(). ! getMimeHeaders().getHeader(Constants.CONTENT_TYPE)[0]; ! } response.setContentType(contentType); response.setStatus(HttpServletResponse.SC_OK); |
|
From: <kc...@us...> - 2003-06-17 04:24:31
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv27294/src/hk/hku/cecid/phoenix/message/transport
Modified Files:
Mail.java
Log Message:
switch to use new ebxmlMessage writeTo mechanism
Index: Mail.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport/Mail.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** Mail.java 15 May 2003 04:30:07 -0000 1.38
--- Mail.java 17 Jun 2003 04:24:28 -0000 1.39
***************
*** 521,538 ****
final SOAPMessage soapMessage = ebxmlMessage.getSOAPMessage();
! final boolean hasAttachments =
! soapMessage.getAttachments().hasNext();
! if (hasAttachments) {
! Utility.addContentTransferEncoding(
! soapMessage, MAIL_TRANSFER_ENCODING,
! MAIL_TRANSFER_ENCODING);
! soapMessage.saveChanges();
! }
final ByteArrayOutputStream out = new ByteArrayOutputStream();
! ebxmlMessage.writeTo(out);
! final String[] contentType = soapMessage.getMimeHeaders().
! getHeader(CONTENT_TYPE);
! String type = contentType[0];
final AttachmentDataSource content =
new AttachmentDataSource(out.toByteArray(), type);
--- 521,532 ----
final SOAPMessage soapMessage = ebxmlMessage.getSOAPMessage();
! final boolean hasAttachments = ebxmlMessage.getPayloadCount() > 0;
final ByteArrayOutputStream out = new ByteArrayOutputStream();
! ebxmlMessage.writeTo(
! out, MAIL_TRANSFER_ENCODING, MAIL_TRANSFER_ENCODING);
! String type = (String) ebxmlMessage.getMimeHeaders(
! MAIL_TRANSFER_ENCODING, MAIL_TRANSFER_ENCODING)
! .get(CONTENT_TYPE);
final AttachmentDataSource content =
new AttachmentDataSource(out.toByteArray(), type);
***************
*** 584,592 ****
throw new TransportException(ErrorMessages.getMessage(
ErrorMessages.ERR_SMTP_CANNOT_SEND_MESSAGE));
- }
-
- if (hasAttachments) {
- Utility.removeContentTransferEncoding(soapMessage);
- soapMessage.saveChanges();
}
--- 578,581 ----
|
|
From: <kc...@us...> - 2003-06-17 04:23:35
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv27187/src/hk/hku/cecid/phoenix/message/transport
Modified Files:
Http.java
Log Message:
add consideration on content transfer encoding
Index: Http.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/transport/Http.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Http.java 13 Jun 2003 06:39:46 -0000 1.2
--- Http.java 17 Jun 2003 04:23:33 -0000 1.3
***************
*** 220,224 ****
boolean hasAuthorization = false;
//MimeHeaders headers = message.getSOAPMessage().getMimeHeaders();
! Map headers = message.getMimeHeaders(encoding);
//for (Iterator i=headers.getAllHeaders() ; i.hasNext() ; ) {
for (Iterator i=headers.entrySet().iterator() ; i.hasNext() ; ) {
--- 220,225 ----
boolean hasAuthorization = false;
//MimeHeaders headers = message.getSOAPMessage().getMimeHeaders();
! Map headers = message.getMimeHeaders(
! Constants.DEFAULT_CONTENT_TRANSFER_ENCODING, encoding);
//for (Iterator i=headers.getAllHeaders() ; i.hasNext() ; ) {
for (Iterator i=headers.entrySet().iterator() ; i.hasNext() ; ) {
***************
*** 246,250 ****
OutputStream os = connection.getOutputStream();
! message.writeTo(os, encoding);
os.flush();
os.close();
--- 247,252 ----
OutputStream os = connection.getOutputStream();
! message.writeTo(os, Constants.DEFAULT_CONTENT_TRANSFER_ENCODING,
! encoding);
os.flush();
os.close();
|
|
From: <kc...@us...> - 2003-06-17 04:22:20
|
Update of /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler
In directory sc8-pr-cvs1:/tmp/cvs-serv27043/src/hk/hku/cecid/phoenix/message/handler
Modified Files:
HttpSender.java
Log Message:
switch to use new HTTP sending class instead of HttpServlet (JAXM)
Index: HttpSender.java
===================================================================
RCS file: /cvsroot/ebxmlms/ebxmlms/src/hk/hku/cecid/phoenix/message/handler/HttpSender.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** HttpSender.java 21 May 2003 14:07:12 -0000 1.14
--- HttpSender.java 17 Jun 2003 04:22:16 -0000 1.15
***************
*** 71,75 ****
import hk.hku.cecid.phoenix.common.util.Property;
import hk.hku.cecid.phoenix.message.packaging.EbxmlMessage;
! import hk.hku.cecid.phoenix.message.transport.HttpServlet;
import hk.hku.cecid.phoenix.message.transport.TransportException;
import java.net.URL;
--- 71,76 ----
import hk.hku.cecid.phoenix.common.util.Property;
import hk.hku.cecid.phoenix.message.packaging.EbxmlMessage;
! import hk.hku.cecid.phoenix.message.transport.Http;
! // import hk.hku.cecid.phoenix.message.transport.HttpServlet;
import hk.hku.cecid.phoenix.message.transport.TransportException;
import java.net.URL;
***************
*** 123,127 ****
*/
public static void configure(Property prop) throws InitializationException {
! HttpServlet.configure(prop);
}
--- 124,129 ----
*/
public static void configure(Property prop) throws InitializationException {
! Http.configure(prop);
! // HttpServlet.configure(prop);
}
***************
*** 133,138 ****
try {
! final SOAPMessage soapMessage = HttpServlet.
! send(ebxmlMessage.getSOAPMessage(), toMshUrl.toString());
successful = true;
if (soapMessage != null) {
--- 135,142 ----
try {
! //final SOAPMessage soapMessage = HttpServlet.
! // send(ebxmlMessage.getSOAPMessage(), toMshUrl.toString());
! final SOAPMessage soapMessage = Http.
! send(ebxmlMessage, toMshUrl.toString());
successful = true;
if (soapMessage != null) {
|