cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Unico Hommes" <Un...@hippo.nl>
Subject RE: cvs commit: cocoon-2.2/src/webapp/WEB-INF cocoon.xconf
Date Fri, 31 Oct 2003 17:04:00 GMT

Done ;-) 

> 
> -----Original Message-----
> From: Konstantin Piroumian [mailto:kpiroumian@apache.org] 
> Sent: vrijdag 31 oktober 2003 14:59
> To: dev@cocoon.apache.org
> 
> All you need to do is to change a little the 
> SystemProperyModule like this:
> 
> 1. extend AbstractJXPathModule (instead of AbstractLoggable)
> 
> 2. Add this method:
> 
>     protected Object getContextObject(Configuration modeConf,
>                                       Map objectModel) {
> 
>         return m_properties;
>     }
> 
> 3. Remove the getAttribute() and getAttributeValues().
> 
> 4. Check that I didn't forget anything ;)
> 
> --
>   Konstantin
> 
> ----- Original Message -----
> From: "Unico Hommes" <Unico@hippo.nl>
> To: <dev@cocoon.apache.org>
> Sent: Friday, October 31, 2003 16:44
> Subject: RE: cvs commit: cocoon-2.2/src/webapp/WEB-INF cocoon.xconf
> 
> 
> 
> Yes, that would be even better. I didn't realize extending
> AbstractJXPathModule could be so powerful. OK, I'll make this change
> later.
> 
> -- Unico
> 
> > 
> > -----Original Message-----
> > From: Konstantin Piroumian [mailto:kpiroumian@apache.org] 
> > Sent: vrijdag 31 oktober 2003 14:19
> > To: dev@cocoon.apache.org
> > Cc: unico@apache.org
> > 
> > Btw, won't it be better to inherit this module from 
> > AbstraxtJXPathModule the same way as SystemPropertyModule does?
> > It would be a little bit more flexible, e.g. you could do 
> > something like
> > this:
> > 
> > <map:parameter name="version-details"
> > value="{cocoon-properties:concat('Major: ', 
> > substring-before(version, '.'), ', Minor: ', 
> > substring-after(version, '.'), ', Year: ', year)}"/>
> > 
> > Regards,
> >   Konstantin
> > 
> > ----- Original Message -----
> > From: <unico@apache.org>
> > To: <cocoon-2.2-cvs@apache.org>
> > Sent: Friday, October 31, 2003 16:12
> > Subject: cvs commit: cocoon-2.2/src/webapp/WEB-INF cocoon.xconf
> > 
> > 
> > > unico       2003/10/31 05:12:06
> > >
> > >   Modified:    src/webapp/samples/modules menu.xml index.xhtml
> > sitemap.xmap
> > >                src/webapp/WEB-INF cocoon.xconf
> > >   Added:       src/java/org/apache/cocoon/components/modules/input
> > >                         PropertiesFileModule.java
> > >   Log:
> > >   new properties file input module
> > >
> > >   Revision  Changes    Path
> > >   1.9       +1 -0      
> > cocoon-2.2/src/webapp/samples/modules/menu.xml
> > >
> > >   Index: menu.xml
> > >   
> > ===================================================================
> > >   RCS file: 
> > /home/cvs/cocoon-2.2/src/webapp/samples/modules/menu.xml,v
> > >   retrieving revision 1.8
> > >   retrieving revision 1.9
> > >   diff -u -r1.8 -r1.9
> > >   --- menu.xml 18 May 2003 16:31:35 -0000 1.8
> > >   +++ menu.xml 31 Oct 2003 13:12:05 -0000 1.9
> > >   @@ -24,6 +24,7 @@
> > >        <menu-item label="ChainMetaModule" href="chain.xsp"/>
> > >        <menu-item label="RandomNumberModule" 
> > href="randomnumber.xsp"/>
> > >        <menu-item label="RealPathModule" href="realpath.xsp"/>
> > >   +    <menu-item label="PropertiesFileModule" 
> > href="properties.xsp"/>
> > >      </menu>
> > >
> > >      <menu label="Documentation">
> > >
> > >
> > >
> > >   1.5       +5 -1      
> > cocoon-2.2/src/webapp/samples/modules/index.xhtml
> > >
> > >   Index: index.xhtml
> > >   
> > ===================================================================
> > >   RCS file: 
> > /home/cvs/cocoon-2.2/src/webapp/samples/modules/index.xhtml,v
> > >   retrieving revision 1.4
> > >   retrieving revision 1.5
> > >   diff -u -r1.4 -r1.5
> > >   --- index.xhtml 17 May 2003 08:11:27 -0000 1.4
> > >   +++ index.xhtml 31 Oct 2003 13:12:05 -0000 1.5
> > >   @@ -57,9 +57,13 @@
> > >                <td><a 
> href="randomnumber.xsp">randomnumber</a></td>
> > >                <td>Random number</td>
> > >              </tr>
> > >   -           <tr>
> > >   +          <tr>
> > >                <td><a href="realpath.xsp">realpath</a></td>
> > >                <td>Real filesystem paths of context paths</td>
> > >   +          </tr>
> > >   +          <tr>
> > >   +            <td><a href="properties.xsp">properties</a></td>
> > >   +            <td>Properties file values</td>
> > >              </tr>
> > >            </table>
> > >          </td>
> > >
> > >
> > >
> > >   1.7       +20 -2     
> > cocoon-2.2/src/webapp/samples/modules/sitemap.xmap
> > >
> > >   Index: sitemap.xmap
> > >   
> > ===================================================================
> > >   RCS file: 
> > /home/cvs/cocoon-2.2/src/webapp/samples/modules/sitemap.xmap,v
> > >   retrieving revision 1.6
> > >   retrieving revision 1.7
> > >   diff -u -r1.6 -r1.7
> > >   --- sitemap.xmap 17 May 2003 08:11:27 -0000 1.6
> > >   +++ sitemap.xmap 31 Oct 2003 13:12:05 -0000 1.7
> > >   @@ -261,7 +261,6 @@
> > >            <map:serialize />
> > >          </map:match>
> > >
> > >   -
> > >          <map:match pattern="content/realpath.xsp">
> > >            <map:generate type="serverpages" src="properties.xsp">
> > >              <map:parameter name="/" value="{realpath:/}"/>
> > >   @@ -275,6 +274,25 @@
> > >            </map:transform>
> > >            <map:serialize />
> > >          </map:match>
> > >   +
> > >   +      <map:match pattern="content/properties.xsp">
> > >   +        <map:generate type="serverpages" src="properties.xsp">
> > >   +          <map:parameter name="name" 
> > value="{cocoon-properties:name}"/>
> > >   +          <map:parameter name="Name" 
> > value="{cocoon-properties:Name}"/>
> > >   +          <map:parameter name="fullname"
> > value="{cocoon-properties:fullname}"/>
> > >   +          <map:parameter name="version"
> > value="{cocoon-properties:version}"/>
> > >   +          <map:parameter name="released.version"
> > value="{cocoon-properties:released.version}"/>
> > >   +          <map:parameter name="year" 
> > value="{cocoon-properties:year}"/>
> > >   +        </map:generate>
> > >   +        <map:transform src="properties2html.xsl">
> > >   +          <map:parameter name="title" value="Properties 
> > File Module
> > >   +            (PropertiesFileModule)"/>
> > >   +          <map:parameter name="description" 
> > value="PropertiesFileModule
> > provides access
> > >   +            to properties from a properties file. In 
> > this example the
> > keys identify properties in
> > >   +            resource://org/apache/cocoon/cocoon.properties"/>
> > >   +        </map:transform>
> > >   +        <map:serialize />
> > >   +      </map:match>
> > >
> > >          <!-- Menu generation -->
> > >          <map:match pattern="menu/*">
> > >
> > >
> > >
> > >   1.1
> > cocoon-2.2/src/java/org/apache/cocoon/components/modules/input
> > /PropertiesFil
> > eModule.java
> > >
> > >   Index: PropertiesFileModule.java
> > >   
> > ===================================================================
> > >   /*
> > >
> > >
> > ==============================================================
> > ==============
> > >                      The Apache Software License, Version 1.1
> > >
> > ==============================================================
> > ==============
> > >
> > >    Copyright (C) 1999-2003 The Apache Software Foundation. 
> > All rights
> > reserved.
> > >
> > >    Redistribution and use in source and binary forms, with 
> > or without
> > modifica-
> > >    tion, are permitted provided that the following 
> > conditions are met:
> > >
> > >    1. Redistributions of  source code must  retain the 
> > above copyright
> > notice,
> > >       this list of conditions and the following disclaimer.
> > >
> > >    2. Redistributions in binary form must reproduce the 
> > above copyright
> > notice,
> > >       this list of conditions and the following disclaimer in the
> > documentation
> > >       and/or other materials provided with the distribution.
> > >
> > >    3. The end-user documentation included with the 
> > redistribution, if any,
> > must
> > >       include  the following  acknowledgment:  "This 
> > product includes
> > software
> > >       developed  by the  Apache Software Foundation
> > (http://www.apache.org/)."
> > >       Alternately, this  acknowledgment may  appear in 
> the software
> > itself,  if
> > >       and wherever such third-party acknowledgments 
> normally appear.
> > >
> > >    4. The names "Apache Cocoon" and  "Apache Software 
> > Foundation" must
> > not  be
> > >       used to  endorse or promote  products derived from  
> > this software
> > without
> > >       prior written permission. For written permission, 
> > please contact
> > >       apache@apache.org.
> > >
> > >    5. Products  derived from this software may not  be 
> > called "Apache",
> > nor may
> > >       "Apache" appear  in their name,  without prior 
> > written permission
> > of the
> > >       Apache Software Foundation.
> > >
> > >    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 
> OR IMPLIED
> > WARRANTIES,
> > >    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > MERCHANTABILITY AND
> > >    FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN 
> > NO  EVENT SHALL
> > THE
> > >    APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE 
> > LIABLE FOR  ANY
> > DIRECT,
> > >    INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR 
> > CONSEQUENTIAL  DAMAGES
> > (INCLU-
> > >    DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE 
> > GOODS OR SERVICES;
> > LOSS
> > >    OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  
> > HOWEVER CAUSED
> > AND ON
> > >    ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT 
> > LIABILITY,  OR
> > TORT
> > >    (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY 
> > WAY OUT OF THE
> > USE OF
> > >    THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
> SUCH DAMAGE.
> > >
> > >    This software  consists of voluntary contributions 
> made  by many
> > individuals
> > >    on  behalf of the Apache Software  Foundation and was  
> originally
> > created by
> > >    Stefano Mazzocchi  <stefano@apache.org>. For more  
> > information on the
> > Apache
> > >    Software Foundation, please see <http://www.apache.org/>.
> > >
> > >   */
> > >   package org.apache.cocoon.components.modules.input;
> > >
> > >   import java.io.IOException;
> > >   import java.io.InputStream;
> > >   import java.util.Iterator;
> > >   import java.util.Map;
> > >   import java.util.Properties;
> > >
> > >   import org.apache.avalon.framework.configuration.Configurable;
> > >   import org.apache.avalon.framework.configuration.Configuration;
> > >   import 
> > org.apache.avalon.framework.configuration.ConfigurationException;
> > >   import org.apache.avalon.framework.logger.AbstractLogEnabled;
> > >   import org.apache.avalon.framework.service.ServiceException;
> > >   import org.apache.avalon.framework.service.ServiceManager;
> > >   import org.apache.avalon.framework.service.Serviceable;
> > >   import org.apache.avalon.framework.thread.ThreadSafe;
> > >   import org.apache.excalibur.source.Source;
> > >   import org.apache.excalibur.source.SourceResolver;
> > >
> > >   /**
> > >    * Input module for accessing properties in a properties file.
> > >    *
> > >    * <p>
> > >    *  The properties file can only be configured statically and
> > >    *  is resolved via the SourceResolver system.
> > >    * </p>
> > >    *
> > >    * @author <a href="mailto:unico@apache.org">Unico Hommes</a>
> > >    */
> > >   public class PropertiesFileModule extends AbstractLogEnabled
> > >   implements InputModule, Serviceable, Configurable, ThreadSafe {
> > >
> > >       private SourceResolver m_resolver;
> > >
> > >       private Properties m_properties;
> > >
> > >
> > >       public void service(ServiceManager manager) throws 
> > ServiceException
> > {
> > >           m_resolver = (SourceResolver)
> > manager.lookup(SourceResolver.ROLE);
> > >       }
> > >
> > >       /**
> > >        * Configure the location of the properties file:
> > >        * <p>
> > >        *  <code>&lt;file src="resource://my.properties" 
> /&gt;</code>
> > >        * </p>
> > >        */
> > >       public void configure(Configuration configuration) throws
> > ConfigurationException {
> > >           String file =
> > configuration.getChild("file").getAttribute("src");
> > >           load(file);
> > >       }
> > >
> > >       private void load(String file) throws 
> ConfigurationException {
> > >           Source source = null;
> > >           InputStream stream = null;
> > >           try {
> > >               source = m_resolver.resolveURI(file);
> > >               stream = source.getInputStream();
> > >               m_properties = new Properties();
> > >               m_properties.load(stream);
> > >           }
> > >           catch (IOException e) {
> > >               throw new ConfigurationException("Cannot load 
> > properties
> > file " + file);
> > >           }
> > >           finally {
> > >               if (source != null) {
> > >                   m_resolver.release(source);
> > >               }
> > >               if (stream != null) {
> > >                   try {
> > >                       stream.close();
> > >                   }
> > >                   catch (IOException e) {
> > >                   }
> > >               }
> > >           }
> > >       }
> > >
> > >       public Object getAttribute(String name,Configuration 
> > modeConf,Map
> > objectModel)
> > >           throws ConfigurationException {
> > >
> > >           return m_properties.getProperty(name);
> > >       }
> > >
> > >       public Iterator getAttributeNames(Configuration 
> modeConf, Map
> > objectModel)
> > >           throws ConfigurationException {
> > >
> > >           return m_properties.keySet().iterator();
> > >       }
> > >
> > >       public Object[] getAttributeValues(String name,Configuration
> > modeConf,Map objectModel)
> > >           throws ConfigurationException {
> > >
> > >           return new Object[] { 
> > getAttribute(name,modeConf,objectModel) };
> > >       }
> > >
> > >   }
> > >
> > >
> > >
> > >   1.32      +3 -0      cocoon-2.2/src/webapp/WEB-INF/cocoon.xconf
> > >
> > >   Index: cocoon.xconf
> > >   
> > ===================================================================
> > >   RCS file: /home/cvs/cocoon-2.2/src/webapp/WEB-INF/cocoon.xconf,v
> > >   retrieving revision 1.31
> > >   retrieving revision 1.32
> > >   diff -u -r1.31 -r1.32
> > >   --- cocoon.xconf 9 Oct 2003 20:12:35 -0000 1.31
> > >   +++ cocoon.xconf 31 Oct 2003 13:12:05 -0000 1.32
> > >   @@ -174,6 +174,9 @@
> > >          <input-module name="session-attr"/>
> > >          <input-module name="defaults"/>
> > >        </component-instance>
> > >   +    <component-instance
> > class="org.apache.cocoon.components.modules.input.PropertiesFi
> > leModule"
> > logger="core.modules.input" name="cocoon-properties">
> > >   +      <file 
> > src="resource://org/apache/cocoon/cocoon.properties" />
> > >   +    </component-instance>
> > >
> > >        <!-- The 'defaults', 'myxml' and 'slashdot' input 
> > modules are used
> > >             in the samples -->
> > >
> > >
> > >
> > >
> > >
> > 
> > 
> > 
> 
> 
> 

Mime
View raw message