cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robby Pelssers <Robby.Pelss...@nxp.com>
Subject RE: using both Xalan and Saxon with C3
Date Thu, 06 Dec 2012 07:50:43 GMT
You missed the point Mansour... I meant simultaneously in 1 pipeline. 

But thx for thinking along.
Robby

-----Original Message-----
From: Mansour Al Akeel [mailto:mansour.alakeel@gmail.com] 
Sent: Thursday, December 06, 2012 5:00 AM
To: users@cocoon.apache.org
Cc: dev@cocoon.apache.org
Subject: Re: using both Xalan and Saxon with C3

If I am not wrong, you can always change the implementation for the xslt processor in the
final WAR file by setting:

META-INF/services/javax.xml.transform.TransformerFactory

This is simple and clean.



On Wed, Dec 5, 2012 at 5:21 AM, Robby Pelssers <Robby.Pelssers@nxp.com> wrote:
> I did some investigation into this matter and the problem is in 
> org.apache.cocoon.sax.component.XSLTTransformer
>
> It has two constructor methods:
>
>     public XSLTTransformer(final URL source) {
>         this(source, null);
>     }
>
> And
>
>     public XSLTTransformer(final URL source, final Map<String, Object> attributes)
{
>         super();
>         this.loadXSLT(source, attributes);
>     }
>
> So we can set attributes for the transformerfactory but not choose the implementation.
First of all I see something in the code that makes no sense to me:
>
>     /**
>      * A generic transformer factory to parse XSLTs.
>      */
>     private static final SAXTransformerFactory TRAX_FACTORY = 
> createNewSAXTransformerFactory();
>
> this always falls back to
>
>     private static SAXTransformerFactory createNewSAXTransformerFactory() {
>         return (SAXTransformerFactory) TransformerFactory.newInstance();
>     }
>
>
> But on lines 148 to 157 I see following code.  If the attributes are not null and not
empty we STILL use createNewSAXTransformerFactory.  So the else block seems like a complete
waste here?!
>
>
>             // XSLT has to be parsed
>             SAXTransformerFactory transformerFactory;
>             if (attributes != null && !attributes.isEmpty()) {
>                 transformerFactory = createNewSAXTransformerFactory();
>                 for (Entry<String, Object> attribute : attributes.entrySet()) {
>                     transformerFactory.setAttribute(attribute.getKey(), attribute.getValue());
>                 }
>             } else {
>                 transformerFactory = TRAX_FACTORY;
>             }
>
> Ideally I would like to see a third constructor method which would 
> allow us to set  the factoryClassName of the 
> Javax.xml.transform.TransformerFactory
>
> And default use:
>
> public static TransformerFactory newInstance(String factoryClassName, 
> ClassLoader classLoader)  throws TransformerFactoryConfigurationError
>
> We could from Cocoon side default set this to be "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"
if the factoryClassName is null or empty.
>
> Just thinking out loud here...
>
> Robby
>
>
> -----Original Message-----
> From: Robby Pelssers [mailto:Robby.Pelssers@nxp.com]
> Sent: Tuesday, December 04, 2012 2:21 PM
> To: dev@cocoon.apache.org; users@cocoon.apache.org
> Subject: using both Xalan and Saxon with C3
>
> Hi guys,
>
> Just wondering how I would configure a C3 project so I could use both 
> Xalan and Saxon from my sitemap and java
>
> I currently took the approach to just create a file 
> META-INF/services/javax.xml.transform.TransformerFactory
> With following content:
> net.sf.saxon.TransformerFactoryImpl
>
> But I guess that restricts me to always use Saxon by default?
>
> Robby
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org




Mime
View raw message