[xgws-dev] CVS Update: codes/xsul/java/modules/xhandler_soap_sticky_header/xsul/xhandler_soap_sticky_header
Aleksander Andrzej Slominski
xgws-dev_at_extreme.indiana.edu
Mon Jun 5 16:14:01 2006
aslom 06/06/05 16:13:48
Modified: xsul/java/generated/java_interfaces/xsul/xpola/capman
CapmanPortType.java RequestmanPortType.java
xsul/java/generated/java_interfaces/xsul/xpola/groupman
GroupmanPortType.java
xsul/java/modules/common/xsul XsulVersion.java
xsul/java/modules/monitoring/xsul/monitoring
XsulMonitoringUtil.java
xsul/java/modules/xhandler_soap_sticky_header/xsul/xhandler_soap_sticky_header
StickySoapHeaderHandler.java
Log:
fixed problem with too "sticky" headers
Revision Changes Path
1.11 +1 -1 codes/xsul/java/generated/java_interfaces/xsul/xpola/capman/CapmanPortType.java
Index: CapmanPortType.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/generated/java_interfaces/xsul/xpola/capman/CapmanPortType.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -t -w -r1.10 -r1.11
--- CapmanPortType.java 31 May 2006 07:31:07 -0000 1.10
+++ CapmanPortType.java 5 Jun 2006 20:13:48 -0000 1.11
@@ -1,4 +1,4 @@
-/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.1_1) */
+/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.2_dev) */
package xsul.xpola.capman;
import javax.xml.namespace.QName;
public interface CapmanPortType {
1.6 +1 -1 codes/xsul/java/generated/java_interfaces/xsul/xpola/capman/RequestmanPortType.java
Index: RequestmanPortType.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/generated/java_interfaces/xsul/xpola/capman/RequestmanPortType.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -t -w -r1.5 -r1.6
--- RequestmanPortType.java 31 May 2006 07:31:08 -0000 1.5
+++ RequestmanPortType.java 5 Jun 2006 20:13:48 -0000 1.6
@@ -1,4 +1,4 @@
-/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.1_1) */
+/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.2_dev) */
package xsul.xpola.capman;
import javax.xml.namespace.QName;
public interface RequestmanPortType {
1.8 +1 -1 codes/xsul/java/generated/java_interfaces/xsul/xpola/groupman/GroupmanPortType.java
Index: GroupmanPortType.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/generated/java_interfaces/xsul/xpola/groupman/GroupmanPortType.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -t -w -r1.7 -r1.8
--- GroupmanPortType.java 31 May 2006 07:31:08 -0000 1.7
+++ GroupmanPortType.java 5 Jun 2006 20:13:48 -0000 1.8
@@ -1,4 +1,4 @@
-/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.1_1) */
+/* DO NOT MODIFY!!!! This file was generated automatically by xwsdlc (version 2.6.2_dev) */
package xsul.xpola.groupman;
import javax.xml.namespace.QName;
public interface GroupmanPortType {
1.80 +3 -3 codes/xsul/java/modules/common/xsul/XsulVersion.java
Index: XsulVersion.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/modules/common/xsul/XsulVersion.java,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -b -t -w -r1.79 -r1.80
--- XsulVersion.java 31 May 2006 22:16:33 -0000 1.79
+++ XsulVersion.java 5 Jun 2006 20:13:48 -0000 1.80
@@ -1,17 +1,17 @@
/* -*- mode: Java; c-basic-offset: 4; indent-tabs-mode: nil; -*- //------100-columns-wide------>|*/
/* Copyright (c) 2002-2006 Extreme! Lab, Indiana University. All rights reserved.
* This software is open source. See the bottom of this file for the licence.
- * $Id: XsulVersion.java,v 1.79 2006/05/31 22:16:33 aslom Exp $ */
+ * $Id: XsulVersion.java,v 1.80 2006/06/05 20:13:48 aslom Exp $ */
package xsul;
/**
* One place to put version number.
*
- * @version $Revision: 1.79 $
+ * @version $Revision: 1.80 $
* @author <a href="http://www.extreme.indiana.edu/~aslom/">Aleksander Slominski</a>
*/
public class XsulVersion {
- public final static String SPEC_VERSION = "2.6.2";
+ public final static String SPEC_VERSION = "2.6.3";
private final static String BUILD = "_dev"; //"_f2"; //"_SPECIAL_EDITION";//"_b4";
private final static String PROJECT_NAME = "XSUL";
1.9 +2 -2 codes/xsul/java/modules/monitoring/xsul/monitoring/XsulMonitoringUtil.java
Index: XsulMonitoringUtil.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/modules/monitoring/xsul/monitoring/XsulMonitoringUtil.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -t -w -r1.8 -r1.9
--- XsulMonitoringUtil.java 29 Apr 2006 01:50:37 -0000 1.8
+++ XsulMonitoringUtil.java 5 Jun 2006 20:13:48 -0000 1.9
@@ -4,7 +4,7 @@
*
* This software is open source. See the bottom of this file for the licence.
*
- * $Id: XsulMonitoringUtil.java,v 1.8 2006/04/29 01:50:37 sshirasu Exp $
+ * $Id: XsulMonitoringUtil.java,v 1.9 2006/06/05 20:13:48 aslom Exp $
*/
package xsul.monitoring;
1.4 +19 -9 codes/xsul/java/modules/xhandler_soap_sticky_header/xsul/xhandler_soap_sticky_header/StickySoapHeaderHandler.java
Index: StickySoapHeaderHandler.java
===================================================================
RCS file: /l/extreme/cvs/codes/xsul/java/modules/xhandler_soap_sticky_header/xsul/xhandler_soap_sticky_header/StickySoapHeaderHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -t -w -r1.3 -r1.4
--- StickySoapHeaderHandler.java 30 Apr 2006 06:48:14 -0000 1.3
+++ StickySoapHeaderHandler.java 5 Jun 2006 20:13:48 -0000 1.4
@@ -35,7 +35,7 @@
private final static ThreadLocal tl = new ThreadLocal();
- private XmlElement headerToUse;
+ private XmlElement defaultHeaderToUse;
private QName headerQName;
private XmlNamespace headerNs;
@@ -53,22 +53,26 @@
public StickySoapHeaderHandler(String name, XmlElement headerToUse) {
super(name);
if(headerToUse == null) throw new IllegalArgumentException();
- this.headerToUse = headerToUse;
+ this.defaultHeaderToUse = headerToUse;
this.headerQName = new QName(headerToUse.getName(), headerToUse.getNamespaceName());
this.headerNs = headerToUse.getNamespace();
}
-
- public static XmlElementAdapter getHeaderAs(Class headerType, QName headerQName) {
+ public static XmlElement getHeader(QName headerQName) {
Object value = tl.get();
if(value == null) {
return null;
}
Map map = (Map) value;
- XmlElement header;
+ XmlElement header = null;
synchronized(map) {
header = (XmlElement) map.get(headerQName);
}
+ return header;
+ }
+
+ public static XmlElementAdapter getHeaderAs(Class headerType, QName headerQName) {
+ XmlElement header = getHeader(headerQName);
XmlElementAdapter adapted = XmlElementAdapter.castOrWrap(header, headerType);
return adapted;
}
@@ -82,6 +86,12 @@
throws DynamicInfosetInvokerException
{
// first set header (if any!)
+ XmlElement headerToUse = getHeader(this.headerQName);
+ // garbage collection
+ tl.set(null);
+ if(headerToUse == null) {
+ headerToUse = defaultHeaderToUse;
+ }
if(headerToUse != null && soapEnvelope.getName().equals(XmlConstants.S_ENVELOPE)) {
XmlElement headerCopy;
try {
@@ -96,7 +106,6 @@
}
soapHeader.addElement(headerCopy);
}
- tl.set(null);
return false;
}
@@ -105,6 +114,7 @@
throws DynamicInfosetInvokerException
{
// set header ot use form incoming SOAP packet *only* if itis not already set
+ XmlElement headerToUse = getHeader(this.headerQName);
if(headerToUse == null) {
XmlElement soapHeader = soapEnvelope.element(null, XmlConstants.S_HEADER);
if(soapHeader != null) {