Hi Stepan,

first, I did a simple xsl Transformation:

TransformerFactory f = TransformerFactory.newInstance();
Transformer t = f.newTransformer(new StreamSource(new FileInputStream("foo.xsl"))); t.transform(new StreamSource(new FileInputStream("foo.xml")),new StreamResult(System.out));

(foo.xml and foo.xsl are really simple, actually taken from the Xalan Examples)

This works fine on both, Sun jdk1.5 and Harmony.
When running with -verbose, I noticed that harmony uses
org.apache.xalan.processor.TransformerFactoryImpl
while Sun uses
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
as default javax.xml.transform.TransformerFactory

Actually all Apache classes within the Sun JDK seem
to be repackaged to com.sun.org.apache.<project>.internal.*

After that test, I forced harmony to use the compiling
TransformerFactory with
System.setProperty("javax.xml.transform.TransformerFactory",
              "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");

(Does not work on sun jdk1.5 because of the repackaging)

Now the bcel classes are loaded as shown in the harmony -verbose
output. XSL Transformation still works fine on harmony.

When I now run the test with
-Xbootclasspath/p:bcel-5.2rc1.jar
I get a
java.lang.NullPointerException
at org.apache.bcel.util.InstructionFinder.search(InstructionFinder.java:226) at org.apache.bcel.util.InstructionFinder.search(InstructionFinder.java:250) at org.apache.xalan.xsltc.compiler.Mode.peepHoleOptimization(Mode.java:1442) at org.apache.xalan.xsltc.compiler.Mode.compileApplyTemplates(Mode.java:1056) at org.apache.xalan.xsltc.compiler.Stylesheet.compileModes(Stylesheet.java:580) at org.apache.xalan.xsltc.compiler.Stylesheet.translate(Stylesheet.java:695)
      at org.apache.xalan.xsltc.compiler.XSLTC.compile(XSLTC.java:335)
      at org.apache.xalan.xsltc.compiler.XSLTC.compile(XSLTC.java:410)
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:720) at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:548)
      at Main.main(Main.java:14)

The harmony-bcel InstructionFinder class uses jakarta.regexp, while
the 5.2rc1 InstructionFinder uses java.util.regexp, which could be
the Reason for the NullPointerException.
Anyway, I think the interesting part of this test is, that sun repackages
external packages to com.sun. packages to avoid Version conflicts.
Although I don´t like this Idea, as this is some kind of "fork" to me,
I don´t see any better solution for this kind of Problem!?

Thanks,
Soeren


Stepan Mishura schrieb:
On 4/8/06, Soeren Strassfeld wrote:
Hi List,

the latest Harmony snapshot ships a version of xalan.jar, which seems to
contains
an old version of Jakarta bcel.
When I try to run my bcel based App, I get a NoSuchMethodError:

org/apache/bcel/Repository.lookupClass(Ljava/lang/Class;)Lorg/apache/bcel/classfile/JavaClass;

I checked Repository.class within xalan.jar, and it doesen´t have this
Method
(I use bcel5.2rc1, but this Method is already present in 5.1).

How can I tell Harmony to use my Version (-classpath bcel5.2rc1 does not
work)
of bcel?


Try option:  -Xbootclasspath/p:<specify your path here>

Thanks,
Stepan.

Regards,
Soeren

--

Soeren Strassfeld (nc-straszso at netcologne dot de)



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-----------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Thanks,
Stepan Mishura
Intel Middleware Products Division



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to