You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by ra...@apache.org on 2005/02/12 13:04:36 UTC
cvs commit: xml-security/src_unitTests/org/apache/xml/security/test/signature XMLSignatureInputTest.java
raul 2005/02/12 04:04:36
Modified: src/org/apache/xml/security/utils CachedXPathAPIHolder.java
IdResolver.java
src/org/apache/xml/security/transforms/implementations
TransformXPath2Filter.java
TransformXPathFilterCHGP.java
TransformXPath2Filter04.java TransformXPath.java
TransformEnvelopedSignature.java
src_unitTests/org/apache/xml/security/test/signature
XMLSignatureInputTest.java
Log:
CacheXPathAPIHolder funcionality change to
a ThreadLocal singleton.
Revision Changes Path
1.5 +24 -26 xml-security/src/org/apache/xml/security/utils/CachedXPathAPIHolder.java
Index: CachedXPathAPIHolder.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/utils/CachedXPathAPIHolder.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CachedXPathAPIHolder.java 24 Dec 2004 12:26:17 -0000 1.4
+++ CachedXPathAPIHolder.java 12 Feb 2005 12:04:35 -0000 1.5
@@ -16,6 +16,7 @@
*/
package org.apache.xml.security.utils;
+import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xpath.CachedXPathAPI;
import org.w3c.dom.Document;
@@ -26,36 +27,33 @@
public class CachedXPathAPIHolder {
static ThreadLocal local=new ThreadLocal();
static ThreadLocal localDoc=new ThreadLocal();
- Document doc;
- CachedXPathAPI cx;
- /**
- *
- */
- public CachedXPathAPIHolder(Document doc) {
- cx=null;
- this.doc=doc;
- // TODO Auto-generated constructor stub
+
+ public static void setDoc(Document doc) {
+ CachedXPathAPI cx=(CachedXPathAPI)local.get();
+ if (cx==null) {
+ cx=new CachedXPathAPI();
+ local.set(cx);
+ localDoc.set(doc);
+ } else {
+ if (localDoc.get()!=doc) {
+ //Different docs reset.
+ cx.getXPathContext().reset();
+ localDoc.set(doc);
+ }
+
+ }
}
/**
* @return
*/
- public CachedXPathAPI getCachedXPathAPI() {
- if (cx==null) {
- cx=(CachedXPathAPI)local.get();
- if (cx==null) {
- cx=new CachedXPathAPI();
- local.set(cx);
- localDoc.set(doc);
- } else {
- if (localDoc.get()!=doc) {
- //Different docs reset.
- cx.getXPathContext().reset();
- localDoc.set(doc);
- }
-
- }
- //cx.getXPathContext().reset();//
- //cx=new CachedXPathAPI();
+ public static CachedXPathAPI getCachedXPathAPI() {
+
+ CachedXPathAPI cx=(CachedXPathAPI)local.get();
+ cx=(CachedXPathAPI)local.get();
+ if (cx==null) {
+ cx=new CachedXPathAPI();
+ local.set(cx);
+ localDoc.set(null);
}
return cx;
}
1.21 +2 -1 xml-security/src/org/apache/xml/security/utils/IdResolver.java
Index: IdResolver.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/utils/IdResolver.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- IdResolver.java 24 Dec 2004 12:26:17 -0000 1.20
+++ IdResolver.java 12 Feb 2005 12:04:35 -0000 1.21
@@ -119,7 +119,8 @@
}
// this must be done so that Xalan can catch ALL namespaces
//XMLUtils.circumventBug2650(doc);
- CachedXPathAPI cx=new CachedXPathAPIHolder(doc).getCachedXPathAPI();//cxHolder.getCachedXPathAPI();
+ CachedXPathAPIHolder.setDoc(doc);
+ CachedXPathAPI cx=CachedXPathAPIHolder.getCachedXPathAPI();//cxHolder.getCachedXPathAPI();
result = IdResolver.getElementByIdInDSNamespace(doc, id,cx);
if (result != null) {
1.15 +3 -3 xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java
Index: TransformXPath2Filter.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- TransformXPath2Filter.java 24 Dec 2004 10:39:52 -0000 1.14
+++ TransformXPath2Filter.java 12 Feb 2005 12:04:36 -0000 1.15
@@ -36,6 +36,7 @@
import org.apache.xml.security.transforms.TransformationException;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.transforms.params.XPath2FilterContainer;
+import org.apache.xml.security.utils.CachedXPathAPIHolder;
import org.apache.xml.security.utils.CachedXPathFuncHereAPI;
import org.apache.xml.security.utils.HelperNodeList;
import org.apache.xml.security.utils.XMLUtils;
@@ -122,7 +123,7 @@
}
CachedXPathFuncHereAPI xPathFuncHereAPI =
- new CachedXPathFuncHereAPI(input.getCachedXPathAPI().getCachedXPathAPI());
+ new CachedXPathFuncHereAPI(CachedXPathAPIHolder.getCachedXPathAPI());
Document inputDoc = XMLUtils.getOwnerDocument(_inputSet);
Element []xpathElements =XMLUtils.selectNodes(
@@ -190,8 +191,7 @@
}
}
- XMLSignatureInput result = new XMLSignatureInput(resultSet,
- input.getCachedXPathAPI());
+ XMLSignatureInput result = new XMLSignatureInput(resultSet);
result.setSourceURI(input.getSourceURI());
1.12 +4 -3 xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPathFilterCHGP.java
Index: TransformXPathFilterCHGP.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPathFilterCHGP.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- TransformXPathFilterCHGP.java 24 Dec 2004 10:39:52 -0000 1.11
+++ TransformXPathFilterCHGP.java 12 Feb 2005 12:04:36 -0000 1.12
@@ -35,8 +35,10 @@
import org.apache.xml.security.transforms.TransformationException;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.transforms.params.XPathFilterCHGPContainer;
+import org.apache.xml.security.utils.CachedXPathAPIHolder;
import org.apache.xml.security.utils.CachedXPathFuncHereAPI;
import org.apache.xml.security.utils.XMLUtils;
+import org.apache.xpath.CachedXPathAPI;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -120,7 +122,7 @@
this.inputSet = input.getNodeSet(true);
CachedXPathFuncHereAPI xPathFuncHereAPI =
- new CachedXPathFuncHereAPI(input.getCachedXPathAPI().getCachedXPathAPI());
+ new CachedXPathFuncHereAPI(CachedXPathAPIHolder.getCachedXPathAPI());
if (this.inputSet.size() == 0) {
Object exArgs[] = { "input node set contains no nodes" };
@@ -235,8 +237,7 @@
process(treewalker);
}
- XMLSignatureInput result = new XMLSignatureInput(resultSet,
- input.getCachedXPathAPI());
+ XMLSignatureInput result = new XMLSignatureInput(resultSet);
result.setSourceURI(input.getSourceURI());
1.11 +4 -4 xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter04.java
Index: TransformXPath2Filter04.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter04.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TransformXPath2Filter04.java 24 Dec 2004 10:39:52 -0000 1.10
+++ TransformXPath2Filter04.java 12 Feb 2005 12:04:36 -0000 1.11
@@ -35,6 +35,7 @@
import org.apache.xml.security.transforms.TransformationException;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.transforms.params.XPath2FilterContainer04;
+import org.apache.xml.security.utils.CachedXPathAPIHolder;
import org.apache.xml.security.utils.CachedXPathFuncHereAPI;
import org.apache.xml.security.utils.XMLUtils;
import org.apache.xpath.CachedXPathAPI;
@@ -94,9 +95,9 @@
log.debug("perform xfilter2 on " + inputSet.size() + " nodes");
CachedXPathFuncHereAPI xPathFuncHereAPI =
- new CachedXPathFuncHereAPI(input.getCachedXPathAPI().getCachedXPathAPI());
+ new CachedXPathFuncHereAPI(CachedXPathAPIHolder.getCachedXPathAPI());
CachedXPathAPI myXPathAPI =
- new CachedXPathAPI(input.getCachedXPathAPI().getCachedXPathAPI());
+ new CachedXPathAPI(CachedXPathAPIHolder.getCachedXPathAPI());
if (inputSet.size() == 0) {
Object exArgs[] = { "input node set contains no nodes" };
@@ -208,8 +209,7 @@
throw new TransformationException("empty");
}
- XMLSignatureInput result = new XMLSignatureInput(resultNodes,
- input.getCachedXPathAPI());
+ XMLSignatureInput result = new XMLSignatureInput(resultNodes);
result.setSourceURI(input.getSourceURI());
1.19 +3 -3 xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath.java
Index: TransformXPath.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/transforms/implementations/TransformXPath.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- TransformXPath.java 23 Sep 2004 20:23:19 -0000 1.18
+++ TransformXPath.java 12 Feb 2005 12:04:36 -0000 1.19
@@ -32,6 +32,7 @@
import org.apache.xml.security.transforms.TransformSpi;
import org.apache.xml.security.transforms.TransformationException;
import org.apache.xml.security.transforms.Transforms;
+import org.apache.xml.security.utils.CachedXPathAPIHolder;
import org.apache.xml.security.utils.CachedXPathFuncHereAPI;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
@@ -109,7 +110,7 @@
CachedXPathFuncHereAPI xPathFuncHereAPI =
- new CachedXPathFuncHereAPI(input.getCachedXPathAPI().getCachedXPathAPI());
+ new CachedXPathFuncHereAPI(CachedXPathAPIHolder.getCachedXPathAPI());
Element xpathElement =XMLUtils.selectDsNode(
@@ -175,8 +176,7 @@
}
}
- XMLSignatureInput result = new XMLSignatureInput(resultNodes,
- input.getCachedXPathAPI());
+ XMLSignatureInput result = new XMLSignatureInput(resultNodes);
result.setSourceURI(input.getSourceURI());
1.14 +2 -3 xml-security/src/org/apache/xml/security/transforms/implementations/TransformEnvelopedSignature.java
Index: TransformEnvelopedSignature.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/transforms/implementations/TransformEnvelopedSignature.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TransformEnvelopedSignature.java 23 Sep 2004 20:23:19 -0000 1.13
+++ TransformEnvelopedSignature.java 12 Feb 2005 12:04:36 -0000 1.14
@@ -99,7 +99,7 @@
signatureElement = searchSignatureElement(signatureElement);
if (input.isElement()) {
- XMLSignatureInput result = new XMLSignatureInput(input.getSubNode(),input.getCachedXPathAPI());
+ XMLSignatureInput result = new XMLSignatureInput(input.getSubNode());
result.setExcludeNode(signatureElement);
result.setExcludeComments(input.isExcludeComments());
return result;
@@ -115,8 +115,7 @@
Set resultSet=XMLUtils.excludeNodeFromSet(signatureElement, inputSet);
- XMLSignatureInput result = new XMLSignatureInput(resultSet,
- null/*input.getCachedXPathAPI()*/);
+ XMLSignatureInput result = new XMLSignatureInput(resultSet);
return result;
} catch (IOException ex) {
1.15 +4 -4 xml-security/src_unitTests/org/apache/xml/security/test/signature/XMLSignatureInputTest.java
Index: XMLSignatureInputTest.java
===================================================================
RCS file: /home/cvs/xml-security/src_unitTests/org/apache/xml/security/test/signature/XMLSignatureInputTest.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XMLSignatureInputTest.java 20 Sep 2004 21:24:13 -0000 1.14
+++ XMLSignatureInputTest.java 12 Feb 2005 12:04:36 -0000 1.15
@@ -254,7 +254,7 @@
CanonicalizationException, InvalidCanonicalizerException,
TransformerException {
- XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null);
+ XMLSignatureInput input = new XMLSignatureInput(getNodeSet1());
String definedWithoutComments =
"<RootElement><Element1></Element1><Element2></Element2><Element3>Text in Element3</Element3></RootElement>";
@@ -327,7 +327,7 @@
ParserConfigurationException, SAXException,
CanonicalizationException, TransformerException {
- XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null);
+ XMLSignatureInput input = new XMLSignatureInput(getNodeSet1());
assertTrue("Input is initialized", input.isInitialized());
}
@@ -347,7 +347,7 @@
ParserConfigurationException, SAXException,
CanonicalizationException, TransformerException {
- XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null);
+ XMLSignatureInput input = new XMLSignatureInput(getNodeSet1());
assertTrue("Input is not octet stream", !input.isOctetStream());
}
@@ -367,7 +367,7 @@
ParserConfigurationException, SAXException,
CanonicalizationException, TransformerException {
- XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null);
+ XMLSignatureInput input = new XMLSignatureInput(getNodeSet1());
assertTrue("Input is node set", input.isNodeSet());
}