santuario-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Egor Pervuninski <...@quorus.ru>
Subject Apache XML Security 1.2 for Java
Date Tue, 11 Jan 2005 13:31:18 GMT
Hello,

Recently I tried to upgrade my project to use new Apache XML Security 1.2 for Java
and found that now the library does c14n much MUCH more slowly than it was with 1.1.

Here is a simple test:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.apache.commons.lang.time.StopWatch;
import org.apache.xml.security.c14n.Canonicalizer;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;

public class Test {
  private final static int REPEAT = 1000;

  private StopWatch timer = new StopWatch();
  private Canonicalizer canon = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS);
  private Document document;
	
  public Test(String file) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    factory.setValidating(false);
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse(new InputSource(file));
  }
	
  public void runTest() throws Exception { 
    timer.start();
    for (int i = 0; i < REPEAT; i++) {
      canon.canonicalizeSubtree(document);
    }
    timer.stop();
    System.out.println("time spent " + String.valueOf(timer.getTime()) + " ms");
  }

  public static void main(String[] args) throws Exception {
    org.apache.xml.security.Init.init();
    Test test = new Test(args[0]);
    test.runTest();
  }
}

Just drop commons-lang-2.0.jar, commons-logging.jar, xercesImpl.jar, xml-apis.jar and  xmlsec.jarto
the
classpath and run java Test File.xml.

Version 1.1 output: time spent 952 ms
Version 1.2 output: time spent 29172 ms

Where is the catch?

Regards,
Egor Pervuninski
egor {dot} pervuninski {at} gmail {dot} com

Mime
View raw message