forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Scherler <thorsten.scherler....@juntadeandalucia.es>
Subject Re: Plans for integrating FOP .94
Date Tue, 11 Dec 2007 09:47:23 GMT
On Tue, 2007-12-11 at 09:18 +0100, Ferdinand Soethe wrote:
> David Crossley wrote:
> 
> > I presume that you will need to operate with our old
> > version of Cocoon-2.2 and rework the Cocoon FOP Block.
> 
> Actually, Jeremias (who is helping me with this) suggested
> to try and compile a new FOP Block from current coccoon
> trunk. But having integrated that
> (http://svn.apache.org/viewvc?rev=603165&view=rev)
> I'm running into a logging problem with Forrest where
> the browser tells me
> 
> > HTTP ERROR: 500
> >
> org%2Eapache%2Ecocoon%2Eblocks%2Efop%2EFOPNGSerializer%2EgetLogger%28%29Lorg%2Fapache%2Fcommons%2Flogging%2FLog%3B
> 
> and Jetty says
> 
> > 08:01:19.609 WARN!! Error for /fop-update/xdoc-gif-ok.pdf
> >> java.lang.NoSuchMethodError: org.apache.cocoon.blocks.fop.FOPNGSerializer.getLogger()Lorg/apache/commons/logging/Log;
> >>         at org.apache.cocoon.blocks.fop.FOPNGSerializer.resolve(FOPNGSerializer.java:230)
> >>         at org.apache.fop.apps.FOURIResolver.resolve(FOURIResolver.java:129)
> >>         at org.apache.fop.apps.FopFactory.resolveURI(FopFactory.java:729)
> >>         at org.apache.fop.apps.FOUserAgent.resolveURI(FOUserAgent.java:385)
> >>         at org.apache.fop.apps.FOUserAgent.resolveURI(FOUserAgent.java:358)
> >>         at org.apache.fop.image.ImageFactory.loadImage(ImageFactory.java:190)
> >>         at org.apache.fop.image.ImageLoader.loadImage(ImageLoader.java:56)
> >>         at org.apache.fop.image.ContextImageCache.getImage(ImageFactory.java:432)
> >>         at org.apache.fop.image.ImageFactory.getImage(ImageFactory.java:157)
> >>         at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:70)
> >>         at org.apache.fop.fo.FObj.processNode(FObj.java:125)
> >>         at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:320)
> >>         at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:185)
> >>         at org.apache.cocoon.xml.AbstractXMLPipe.startElement(AbstractXMLPipe.java:94)
> >>         at org.apache.cocoon.environment.internal.EnvironmentChanger.startElement(EnvironmentStack.java:140)
> >>         at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
> >>         at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
> >>         at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:243)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1399)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> >>         at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> >>         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> >>         at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
> >>         at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
> >>         at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3458)
> >>         at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:406)
> >>         at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55)
> >>         at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:585)
> >>         at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55)
> >>         at org.apache.cocoon.transformation.AbstractSAXTransformer.endDocument(AbstractSAXTransformer.java:377)
> >>         at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55)
> >>         at org.apache.cocoon.transformation.XIncludeTransformer$XIncludePipe.endDocument(XIncludeTransformer.java:184)
> >>         at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55)
> >>         at org.apache.cocoon.sitemap.DefaultContentAggregator.generate(DefaultContentAggregator.java:135)
> >>         at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
> >>         at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:174)
> >>         at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:722)
> >>         at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:347)
> >>         at org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:97)
> >>         at org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:276)
> >>         at org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:118)
> >>         at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:530)
> >>         at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:174)
> >>         at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:437)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:137)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:86)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:116)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223)
> >>         at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:81)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223)
> >>         at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:81)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155)
> >>         at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
> >>         at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292)
> >>         at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223)
> >>         at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289)
> >>         at org.apache.cocoon.Cocoon.process(Cocoon.java:557)
> >>         at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:364)
> >>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
> >>         at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
> >>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
> >>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
> >>         at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
> >>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
> >>         at org.mortbay.http.HttpServer.service(HttpServer.java:879)
> >>         at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
> >>         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
> >>         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
> >>         at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
> >>         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
> >>         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
> 
> According to Jeremias this is because Coccoon has switched
> from Avalon to Spring and is now using an Apache Commons Logger.

Did you try to "just" add commons logging as well (drop the lib)?

> 
> So his advice is to re-compile the new FOP block with the
> Coccoon version we are currently using in Forrest.
> (Which is perhaps what David meant, is it?)

..or (better) update our cocoon version to the current cocoon one or
switch to cocoon-2.1.x. Otherwise we are really starting to fork cocoon.

> 
> Now could somebody perhaps explain to me in simple terms how
> to best accomplish that (recompile that block)?

I think that is not that easy, since they did not only switch the
container but as well they building engine (now maven). 

Basically you need to get our cocoon revision and then manually patch
the FOP block from our revision to current HEAD of the block. You need
to analyze every single change and decide whether or not it is container
related, since you do not want any changes that are using Spring
features. 

That leaves you with a forked FOP block that should be build with ant
instead of maven. Then you need to find the old documentation how to
build a block (I reckon looking at the 2.1.x docu may do).

The task is not that trivial and leaves us with a fork. 

HTH a wee bit.

salu2

> 
> Thanks,
> Ferdinand
> 
-- 
Thorsten Scherler                                 thorsten.at.apache.org
Open Source Java                      consulting, training and solutions


Mime
View raw message