cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean-Claude Vogel" <vogel.jeancla...@gmail.com>
Subject Re: XSLT custom implementation (or XSLTTransformer initialization)
Date Wed, 21 Nov 2007 09:49:38 GMT
I tried to addin my bean declaration :
        <property name="manager"
            ref="org.apache.avalon.framework.service.ServiceManager"/>

and
    public void setManager(ServiceManager manager) throws ServiceException {

        super.service(manager);
        this.manager=manager;
      }

in my transformer implementation. But it doesn't work, I have still :
                   - org.apache.cocoon.transformation.XSLTTransformer.setup(
XSLTTransformer.java :304)

2007/11/19, Jean-Claude Vogel <vogel.jeanclaude@gmail.com>:
>
> Hello,
>
> Sorry to send several questions on the mailing list.
>
> I would like to know what I have to configure to make my own class
> implementing XSLTTransformer in spring and to use it in the sitemap. I am a
> newbie with Cocoon so if somebody would have an example it would be famous.
>
> Here is an extract of my sitemap :
>     <map:resources>
>         <map:resource name="transform-my">
>             <map:transform type="exportXSLTTransformer" />
>         </map:resource>
>     </map:resources>
>
> an extract of the applicationContext.xml :
>     <!-- Export XSLT transformer -->
>     <bean name="org.apache.cocoon.transformation.Transformer/exportXSLTTransformer"
>
>         scope="prototype"
>         class="xxxx.ExportXSLTTransformer">
>         <property name="xmlFormatManager">
>             <ref bean="xmlFormatManager" />
>         </property>
>     </bean>
>
> and my implementation class (code not finalised) :
> public class ExportXSLTTransformer extends XSLTTransformer {
>     /** General log stream */
>     private static final Log log = LogFactory.getLog(
> ExportXSLTTransformer.class);
>
>     /** HTTP parameter name for format parameter */
>     static private final String FORMAT_PARAM_NAME = "format";
>     static private final String DEFAULT_FORMAT_NAME = "Live";
>
>     /** XSD validator implementations */
>     private XmlFormatManager xmlFormatManager;
>     /** HTTP request */
>     private Request request;
>
>     @SuppressWarnings("unchecked")
>     public void setup(SourceResolver resolver,
>                       Map objectModel,
>                       String src,
>                       Parameters parameters) throws SAXException,
> ProcessingException, IOException {
>
>         request = ObjectModelHelper.getRequest(objectModel);
>
>         String formatName = request.getParameter(FORMAT_PARAM_NAME);
>
>         if(formatName == null) {
>             formatName = DEFAULT_FORMAT_NAME;
>         }
>
>         String fileName =
> xmlFormatManager.getStylesheetMaxmlExportFileName(formatName);
>
>
>         super.enableLogging(new CLLoggerWrapper(this.log)); // HERE I
> FORCE ENABLELOGGING TO MAKE WORK A LITTLE BETTER
>
>         super.setup(resolver, objectModel, fileName, parameters);
>     }
>
>     /**
>      * XSD validators and XSLT stylesheets manager setter
>      *
>      * @param xmlFormatManager XSD validators and XSLT stylesheets manager
>
>      */
>     public void setXmlFormatManager(XmlFormatManager xmlFormatManager) {
>         this.xmlFormatManager = xmlFormatManager;
>     }
> }
>
> When I execute it there are NullPointerException :
>                   -
> org.apache.cocoon.transformation.XSLTTransformer.setup(
> XSLTTransformer.java:292) if I don't force the enableLogging()
>                    -
> org.apache.cocoon.transformation.XSLTTransformer.setup(
> XSLTTransformer.java :304) if I force the enableLogging()
>
> It seems that my class is not initialized by Cocoon, I looked in the
> Cocoon code the XSLTTansformer initialization but didn't found it.
>
> Can somebody help me please ?
>

Mime
View raw message