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());
      }