On 20.02.2008 12:37:42 Vincent Hennebert wrote:
> I get the same kind of errors on my Linux box. I don’t understand why 
> the error under Java 1.4 does not occur when xercesImpl.jar is added to 
> the classpath, since AFAIK we don’t trigger the endorsed mechanism, so 
> the default SAX parser implementation shipped with Java should not be 
> overridden.
> 
> I guess the simplest is to keep with the status quo, or with your 
> solution #2 if you feel like implementing it.

I actually prefer #2 if we start using JAXP 1.3 features like XInclude.
I would volunteer to implement #2 including writing additional docs.

> However, I would put only 
> serializer and xercesImpl in the endorsed/ directory, since like 
> I explained [1] I’d consider the other two as regular dependencies 
> (classes not available in the standard library).

But not putting xml-apis.jar into the endorsed directory makes the
classpath setup more complicated and unintuitive. You'd have to put JARs
from the lib and lib/endorsed dirs into the bootclasspath and you cannot
use *.jar in Ant without additional exclude statements.

> (That said, newbies will probably download the binaries instead of 
> having to fiddle with the source files.)

Definitely. And not even newbies.

> Vincent
> 
> [1] 
> http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200801.mbox/[EMAIL
>  PROTECTED]
> 
> Jeremias Maerki wrote:
> > I've done some experiments based on our discussion. I removed Xerces and
> > serializer.jar and moved Xalan-J to a test/lib directory and made it
> > available only to the test code. Building FOP like this is no problem
> > but running the test suite on a basic Sun JDK 1.4.2_16 (with no replaced
> > XML JARs) fails:
> > 
> > Testsuite: org.apache.fop.layoutengine.LayoutEngineTestSuite
> > Tests run: 7, Failures: 0, Errors: 1, Time elapsed: 3.547 sec
> > ------------- Standard Error -----------------
> > <snip/>
> > ------------- ---------------- ---------------
> > 
> > Testcase: block_hyphenation-ladder-count.xml took 1.375 sec
> > Testcase: block_hyphenation_kerning.xml took 0.094 sec
> > Testcase: block_hyphenation_no-wrap.xml took 0.031 sec
> > Testcase: block_uax14_linebreaking_hyph.xml took 0.016 sec
> >     Caused an ERROR
> > Dokumentwurzelelement fehlt
> > org.xml.sax.SAXParseException: Dokumentwurzelelement fehlt
> >     at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
> >     at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
> >     at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
> >     at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
> >     at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
> >     at 
> > org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
> >     at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:151)
> >     at 
> > org.apache.fop.layoutengine.LayoutEngineTester.runTest(LayoutEngineTester.java:139)
> >     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite$LayoutEngineTestCase.testMain(LayoutEngineTestSuite.java:214)
> >     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite$1.runTest(LayoutEngineTestSuite.java:193)
> > 
> > Testcase: footnote_in_inline.xml took 0.031 sec
> > Testcase: inline_border_padding_hyphenate.xml took 1.297 sec
> > Testcase: inline_border_padding_hyphenate_de.xml took 0.672 sec
> > 
> > 
> > "Dokumentwurzelelement fehlt" translates to "Document root element
> > is missing". Probably a bug in Crimson.
> > 
> > Even worse on Sun JDK 1.5.0_14 and 6.0_03:
> > 
> >     [junit] Testcase: 
> > test_fonts_directory_recursive.xconf(org.apache.fop.config.FontsDirectoryRecursiveTestCase):
> >       Caused an ERROR
> >     [junit] org/apache/xml/serializer/TreeWalker
> >     [junit] java.lang.NoClassDefFoundError: 
> > org/apache/xml/serializer/TreeWalker
> >     [junit]     at 
> > org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:823)
> >     [junit]     at 
> > org.apache.fop.render.pdf.BasePDFTestCase.convertFO(BasePDFTestCase.java:88)
> >     [junit]     at 
> > org.apache.fop.config.BaseUserConfigTestCase.convertFO(BaseUserConfigTestCase.java:71)
> >     [junit]     at 
> > org.apache.fop.config.BaseConstructiveUserConfigTestCase.testUserConfig(BaseConstructiveUserConfigTestCase.java:38)
> >     [junit]
> > 
> > and...
> > 
> > junit-layout-standard:
> >      [echo] Running standard layout engine tests
> >     [junit] Testsuite: org.apache.fop.layoutengine.LayoutEngineTestSuite
> >     [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> >     [junit]
> >     [junit] Null Test:  Caused an ERROR
> >     [junit] null
> >     [junit] java.lang.reflect.InvocationTargetException
> >     [junit] Caused by: java.lang.NoClassDefFoundError: 
> > org/apache/xml/serializer/ExtendedContentHandler
> >     [junit]     at 
> > org.apache.xalan.processor.XSLTSchema.build(XSLTSchema.java:325)
> >     [junit]     at 
> > org.apache.xalan.processor.XSLTSchema.<init>(XSLTSchema.java:72)
> >     [junit]     at 
> > org.apache.xalan.processor.StylesheetHandler.<init>(StylesheetHandler.java:1290)
> >     [junit]     at 
> > org.apache.xalan.processor.TransformerFactoryImpl.newTemplatesHandler(TransformerFactoryImpl.java:376)
> >     [junit]     at 
> > org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:867)
> >     [junit]     at 
> > org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:776)
> >     [junit]     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite.readDisabledTestcases(LayoutEngineTestSuite.java:71)
> >     [junit]     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite.decorateWithDisabledList(LayoutEngineTestSuite.java:122)
> >     [junit]     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite.getTestFiles(LayoutEngineTestSuite.java:146)
> >     [junit]     at 
> > org.apache.fop.layoutengine.LayoutEngineTestSuite.suite(LayoutEngineTestSuite.java:174)
> >     [junit]
> >     [junit]
> >     [junit] Test org.apache.fop.layoutengine.LayoutEngineTestSuite FAILED
> > 
> > which may a side effect of our using the ASF-built xml-apis.jar which
> > has a fallback to org.apache.xalan.processor.TransformerFactoryImpl for
> > the TransformerFactory. Why the fallback is triggered eludes me.
> > 
> > At least, restoring serializer.jar to the test/lib directory lets the
> > test suite pass on Java 5 and 6. So we're back to only one JAR that can
> > be removed and that would actually be useful in a Java 1.4 context which
> > we'll use to build the release.
> > 
> > I want FOP to build out-of-the-box without the user having to fiddle
> > around with his system (if he has Ant properly installed which can be
> > assumed today). A newbie needs a "quick success" when he downloads FOP
> > for the first time. I usually throw new software I try out away if I
> > cannot build from the sources within 10 minutes. Usually happens with
> > Maven-built software but not exclusively. Basically, I'm back with my
> > original solution 2 (<fop-root>/lib/endorsed, no JAR removal) or status
> > quo.
> > 
> > Did I miss anything?
> > 
> > 
> > Jeremias Maerki
> > 
> 
> -- 
> Vincent Hennebert                            Anyware Technologies
> http://people.apache.org/~vhennebert         http://www.anyware-tech.com
> Apache FOP Committer                         FOP Development/Consulting




Jeremias Maerki

Reply via email to