jstrachan    02/05/15 00:47:50

  Modified:    jelly/src/test/org/apache/commons/jelly TestXMLTags.java
               jelly/src/java/org/apache/commons/jelly/tags/sql
                        DataSourceWrapper.java SetDataSourceTag.java
                        QueryTag.java DataSourceUtil.java
               jelly/src/java/org/apache/commons/jelly JellyContext.java
               jelly/src/java/org/apache/commons/jelly/tags/bsf
                        ContextRegistry.java
  Removed:     jelly/src/java/org/apache/commons/jelly Context.java
  Log:
  removed unnecessary debug messages and old Context class
  
  Revision  Changes    Path
  1.6       +1 -130    
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/TestXMLTags.java
  
  Index: TestXMLTags.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/TestXMLTags.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TestXMLTags.java  15 May 2002 06:25:49 -0000      1.5
  +++ TestXMLTags.java  15 May 2002 07:47:50 -0000      1.6
  @@ -1,130 +1 @@
  -/*
  - * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/TestXMLTags.java,v
 1.5 2002/05/15 06:25:49 jstrachan Exp $
  - * $Revision: 1.5 $
  - * $Date: 2002/05/15 06:25:49 $
  - *
  - * ====================================================================
  - *
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, 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 acknowlegement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowlegement may appear in the software itself,
  - *    if and wherever such third-party acknowlegements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
  - *
  - * 5. Products derived from this software may not be called "Apache"
  - *    nor may "Apache" appear in their names without prior written
  - *    permission of the Apache Group.
  - *
  - * 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 (INCLUDING, 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.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - * 
  - * $Id: TestXMLTags.java,v 1.5 2002/05/15 06:25:49 jstrachan Exp $
  - */
  -package org.apache.commons.jelly;
  -
  -import java.io.InputStream;
  -import java.io.IOException;
  -import java.io.StringWriter;
  -
  -import junit.framework.Test;
  -import junit.framework.TestCase;
  -import junit.framework.TestSuite;
  -import junit.textui.TestRunner;
  -
  -import org.apache.commons.jelly.JellyContext;
  -import org.apache.commons.jelly.Script;
  -import org.apache.commons.jelly.XMLOutput;
  -import org.apache.commons.jelly.impl.TagScript;
  -import org.apache.commons.jelly.parser.XMLParser;
  -
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -
  -
  -/** Tests the parser, the engine and the XML tags
  -  *
  -  * @author <a href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  -  * @version $Revision: 1.5 $
  -  */
  -public class TestXMLTags extends TestCase {
  -    
  -    /** The Log to which logging calls will be made. */
  -    private static final Log log = LogFactory.getLog( TestXMLTags.class );
  -
  -    public static void main( String[] args ) {
  -        TestRunner.run( suite() );
  -    }
  -    
  -    public static Test suite() {
  -        return new TestSuite(TestXMLTags.class);
  -    }
  -    
  -    public TestXMLTags(String testName) {
  -        super(testName);
  -    }
  -    
  -    public void testParse() throws Exception {
  -        InputStream in = getClass().getResourceAsStream( "example.jelly" );
  -        XMLParser parser = new XMLParser();
  -        Script script = parser.parse( in );
  -        script = script.compile();
  -
  -        log.debug( "Found: " + script );
  -        
  -        assertTrue( "Script is a TagScript", script instanceof TagScript );
  -        
  -        JellyContext context = new JellyContext();        
  -        StringWriter buffer = new StringWriter();
  -        
  -        script.run( context, XMLOutput.createXMLOutput( buffer ) );
  -        
  -        String text = buffer.toString().trim();
  -        
  -        if ( log.isDebugEnabled() ) {
  -            log.debug( "Evaluated script as..." );
  -            log.debug( text );
  -        }
  -        
  -        assertEquals( "Produces the correct output", "It works!", text );        
  -    }    
  -}
  -
  +/*
 * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/TestXMLTags.java,v
 1.6 2002/05/15 07:47:50 jstrachan Exp $
 * $Revision: 1.6 $
 * $Date: 2002/05/15 
07:47:50 $
 *
 * ====================================================================
 
*
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999-2002 The Apache 
Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source 
and binary forms, with or without
 * modification, 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 acknowlegement:
 *       "This product includes software 
developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    
Alternately, this acknowlegement may appear in the software itself,
 *    if and 
wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The 
Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
 *
 * 5. 
Products derived from this software may not be called "Apache"
 *    nor may "Apache" 
appear in their names without prior written
 *    permission of the Apache Group.
 *
 
* 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 (INCLUDING, 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.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 * 
 * $Id: TestXMLTags.java,v 1.6 
2002/05/15 07:47:50 jstrachan Exp $
 */
package org.apache.commons.jelly;
import 
java.io.InputStream;
import java.io.IOException;
import java.io.StringWriter;
import 
junit.framework.Test;
import junit.framework.TestCase;
import 
junit.framework.TestSuite;
import junit.textui.TestRunner;

import 
org.apache.commons.jelly.JellyContext;
import org.apache.commons.jelly.Script;
import 
org.apache.commons.jelly.XMLOutput;
import org.apache.commons.jelly.impl.TagScript;
import org.apache.commons.jelly.parser.XMLParser;
import 
org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/** 
Tests the parser, the engine and the XML tags
  *
  * @author <a 
href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  * @version $Revision: 1.6 $
  
*/
public class TestXMLTags extends TestCase {

    /** The Log to which logging calls 
will be made. */
    private static final Log log = 
LogFactory.getLog(TestXMLTags.class);

    public static void main(String[] args) {
   
     TestRunner.run(suite());
    }

    public static Test suite() {
        return 
new TestSuite(TestXMLTags.class);
    }

    public TestXMLTags(String testName) {
    
    super(testName);
    }

    public void testParse() throws Exception {
        
InputStream in = getClass().getResourceAsStream("example.jelly");
        XMLParser 
parser = new XMLParser();
        Script script = parser.parse(in);
        script = 
script.compile();
        log.debug("Found: " + script);
        assertTrue("Script is 
a TagScript", script instanceof TagScript);
        JellyContext context = new 
JellyContext();
        StringWriter buffer = new StringWriter();
        
script.run(context, XMLOutput.createXMLOutput(buffer));
        String text = 
buffer.toString().trim();
        if (log.isDebugEnabled()) {
            
log.debug("Evaluated script as...");
            log.debug(text);
        }
        
assertEquals("Produces the correct output", "It works!", text);
    }
}
  \ No newline at end of file
  
  
  
  1.2       +90 -81    
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/DataSourceWrapper.java
  
  Index: DataSourceWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/DataSourceWrapper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DataSourceWrapper.java    15 May 2002 06:25:47 -0000      1.1
  +++ DataSourceWrapper.java    15 May 2002 07:47:50 -0000      1.2
  @@ -73,87 +73,96 @@
    */
   public class DataSourceWrapper implements DataSource {
   
  -     /** The Log to which logging calls will be made. */
  -     private static final Log log = LogFactory.getLog(DataSourceWrapper.class);
  +    /** The Log to which logging calls will be made. */
  +    private static final Log log = LogFactory.getLog(DataSourceWrapper.class);
   
  -     private String driverClassName;
  -     private String jdbcURL;
  -     private String userName;
  -     private String password;
  -
  -     public void setDriverClassName(String driverClassName)
  -             throws ClassNotFoundException, InstantiationException, 
IllegalAccessException {
  -             log.info("Loading JDBC driver: [" + driverClassName + "]");
  -
  -             this.driverClassName = driverClassName;
  -             getClass().getClassLoader().loadClass(driverClassName).newInstance();
  -     }
  -
  -     public void setJdbcURL(String jdbcURL) {
  -             log.info("Setting url to: " + jdbcURL);
  -             this.jdbcURL = jdbcURL;
  -     }
  -
  -     public void setUserName(String userName) {
  -             this.userName = userName;
  -     }
  -
  -     public void setPassword(String password) {
  -             this.password = password;
  -     }
  -
  -     /**
  -      * Returns a Connection using the DriverManager and all
  -      * set properties.
  -      */
  -     public Connection getConnection() throws SQLException {
  -             Connection conn = null;
  -             if (userName != null) {
  -                     log.info("Creating connection from url: " + jdbcURL + " 
userName: " + userName);
  -                     conn = DriverManager.getConnection(jdbcURL, userName, 
password);
  -             }
  -             else {
  -                     log.info("Creating connection from url: " + jdbcURL);
  -                     conn = DriverManager.getConnection(jdbcURL);
  -             }
  -             return conn;
  -     }
  -
  -     /**
  -      * Always throws a SQLException. Username and password are set
  -      * in the constructor and can not be changed.
  -      */
  -     public Connection getConnection(String username, String password)
  -             throws SQLException {
  -             throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  -     }
  -
  -     /**
  -      * Always throws a SQLException. Not supported.
  -      */
  -     public int getLoginTimeout() throws SQLException {
  -             throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  -     }
  -
  -     /**
  -      * Always throws a SQLException. Not supported.
  -      */
  -     public PrintWriter getLogWriter() throws SQLException {
  -             throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  -     }
  -
  -     /**
  -      * Always throws a SQLException. Not supported.
  -      */
  -     public void setLoginTimeout(int seconds) throws SQLException {
  -             throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  -     }
  -
  -     /**
  -      * Always throws a SQLException. Not supported.
  -      */
  -     public synchronized void setLogWriter(PrintWriter out) throws SQLException {
  -             throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  -     }
  +    private String driverClassName;
  +    private String jdbcURL;
  +    private String userName;
  +    private String password;
  +
  +    public void setDriverClassName(String driverClassName)
  +        throws ClassNotFoundException, InstantiationException, 
IllegalAccessException {
  +
  +        if (log.isDebugEnabled()) {
  +            log.debug("Loading JDBC driver: [" + driverClassName + "]");
  +        }
  +
  +        this.driverClassName = driverClassName;
  +        getClass().getClassLoader().loadClass(driverClassName).newInstance();
  +    }
  +
  +    public void setJdbcURL(String jdbcURL) {
  +        this.jdbcURL = jdbcURL;
  +    }
  +
  +    public void setUserName(String userName) {
  +        this.userName = userName;
  +    }
  +
  +    public void setPassword(String password) {
  +        this.password = password;
  +    }
  +
  +    /**
  +     * Returns a Connection using the DriverManager and all
  +     * set properties.
  +     */
  +    public Connection getConnection() throws SQLException {
  +        Connection conn = null;
  +        if (userName != null) {
  +            if (log.isDebugEnabled()) {
  +                log.debug(
  +                    "Creating connection from url: " + jdbcURL + " userName: " + 
userName);
  +            }
  +
  +            conn = DriverManager.getConnection(jdbcURL, userName, password);
  +        }
  +        else {
  +            if (log.isDebugEnabled()) {
  +                log.debug("Creating connection from url: " + jdbcURL);
  +            }
  +
  +            conn = DriverManager.getConnection(jdbcURL);
  +        }
  +        return conn;
  +    }
  +
  +    /**
  +     * Always throws a SQLException. Username and password are set
  +     * in the constructor and can not be changed.
  +     */
  +    public Connection getConnection(String username, String password)
  +        throws SQLException {
  +        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  +    }
  +
  +    /**
  +     * Always throws a SQLException. Not supported.
  +     */
  +    public int getLoginTimeout() throws SQLException {
  +        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  +    }
  +
  +    /**
  +     * Always throws a SQLException. Not supported.
  +     */
  +    public PrintWriter getLogWriter() throws SQLException {
  +        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  +    }
  +
  +    /**
  +     * Always throws a SQLException. Not supported.
  +     */
  +    public void setLoginTimeout(int seconds) throws SQLException {
  +        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  +    }
  +
  +    /**
  +     * Always throws a SQLException. Not supported.
  +     */
  +    public synchronized void setLogWriter(PrintWriter out) throws SQLException {
  +        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
  +    }
   
   }
  
  
  
  1.2       +0 -1      
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/SetDataSourceTag.java
  
  Index: SetDataSourceTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/SetDataSourceTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetDataSourceTag.java     15 May 2002 06:25:47 -0000      1.1
  +++ SetDataSourceTag.java     15 May 2002 07:47:50 -0000      1.2
  @@ -120,7 +120,6 @@
        }
   
        public void setUrl(String jdbcURL) {
  -             log.info( "Setting url to: "+ jdbcURL );
                this.jdbcURL = jdbcURL;
        }
   
  
  
  
  1.2       +0 -7      
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/QueryTag.java
  
  Index: QueryTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/QueryTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- QueryTag.java     15 May 2002 06:25:47 -0000      1.1
  +++ QueryTag.java     15 May 2002 07:47:50 -0000      1.2
  @@ -131,13 +131,6 @@
        }
   
        public void setDataSource(Object dataSource) {
  -             if ( dataSource != null ) {
  -                     log.info( "Setting data source to: " + dataSource + " of type: 
" + dataSource.getClass() );
  -             }
  -             else {
  -                     log.info( "Setting data source to: " + dataSource );
  -             }
  -             
                this.rawDataSource = dataSource;
                this.dataSourceSpecified = true;
        }
  
  
  
  1.2       +0 -5      
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/DataSourceUtil.java
  
  Index: DataSourceUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/sql/DataSourceUtil.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DataSourceUtil.java       15 May 2002 06:25:47 -0000      1.1
  +++ DataSourceUtil.java       15 May 2002 07:47:50 -0000      1.2
  @@ -93,10 +93,6 @@
                throws JellyException {
                DataSource dataSource = null;
   
  -             if (log.isInfoEnabled() ) {
  -                     log.info( "Attempting to deduce DataSource from: " + 
rawDataSource );
  -             }
  -             
                if (rawDataSource == null) {
                        rawDataSource = 
pc.getVariable("org.apache.commons.jelly.sql.DataSource");
                }
  @@ -111,7 +107,6 @@
                * a DataSource
                */
                if (rawDataSource instanceof String) {
  -                     log.info( "rawDataSource is a String" );
                        try {
                                Context ctx = new InitialContext();
                                // relative to standard JNDI root for J2EE app
  
  
  
  1.2       +1 -1      
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyContext.java
  
  Index: JellyContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JellyContext.java 15 May 2002 06:25:47 -0000      1.1
  +++ JellyContext.java 15 May 2002 07:47:50 -0000      1.2
  @@ -1 +1 @@
  -/*
 * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyContext.java,v
 1.10 2002/04/26 12:20:12 jstrachan Exp $
 * $Revision: 1.10 $
 * $Date: 2002/04/26 
12:20:12 $
 *
 * ====================================================================
 
*
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999-2002 The Apache 
Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source 
and binary forms, with or without
 * modification, 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 acknowlegement:
 *       "This product includes software 
developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    
Alternately, this acknowlegement may appear in the software itself,
 *    if and 
wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The 
Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
 *
 * 5. 
Products derived from this software may not be called "Apache"
 *    nor may "Apache" 
appear in their names without prior written
 *    permission of the Apache Group.
 *
 
* 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 (INCLUDING, 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.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 * 
 * $Id: JellyContext.java,v 
1.10 2002/04/26 12:20:12 jstrachan Exp $
 */

package org.apache.commons.jelly;

import java.io.File;
import java.io.InputStream;
import 
java.net.MalformedURLException;
import java.net.URL;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;

import 
org.apache.commons.jelly.parser.XMLParser;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/** <p><code>JellyContext</code> 
represents the Jelly context.</p>
  *
  * @author <a 
href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  * @version $Revision: 1.10 $
  
*/

public class JellyContext {

     /** The root URL context (where scripts are 
located from) */
   private URL rootContext;

      /** The current URL context (where 
relative scripts are located from) */
       private URL currentJellyContext;

      
/** Tag libraries found so far */
      private Map taglibs = new Hashtable();

       
 /** synchronized access to the variables in scope */
   private Map variables = new 
Hashtable();

      /** The Log to which logging calls will be made. */
    private 
Log log = LogFactory.getLog(JellyContext.class);

      public JellyContext() {
       
         this.currentJellyContext = rootContext;
        }
      
       public 
JellyContext(URL rootContext) {
         this.rootContext = rootContext;
              
  this.currentJellyContext = rootContext;
        }
      
       public 
JellyContext(URL rootContext, URL currentJellyContext) {
                
this.rootContext = rootContext;
                this.currentJellyContext = 
currentJellyContext;
        }
      
       public JellyContext(JellyContext 
parentJellyContext) {
         this.rootContext = parentJellyContext.rootContext;
     
        this.currentJellyContext = parentJellyContext.currentJellyContext;
            
 this.taglibs = parentJellyContext.taglibs;
             
this.variables.put("parentScope", parentJellyContext.variables);
       }
      
      
 public JellyContext(JellyContext parentJellyContext, URL currentJellyContext) {
      
          this(parentJellyContext);
              this.currentJellyContext = 
currentJellyContext;
        }
      
       /** @return the value of the given 
variable name */
    public Object getVariable(String name) {
               return 
variables.get(name);
    }
      
       /** Sets the value of the given variable name 
*/
       public void setVariable(String name, Object value) {
           if (value == 
null) {
                   variables.remove(name);
                }
              
else {
                 variables.put(name, value);
            }
      }
      
      
 /** Removes the given variable */
      public void removeVariable(String name) {
    
          variables.remove(name);
        }
      
       /** 
    * @return an 
Iterator over the current variable names in this
  * context 
     */
    public 
Iterator getVariableNames() {
           return variables.keySet().iterator();
  }
    
  
       /**
     * @return the Map of variables in this scope
   */
    public Map 
getVariables() {
            return variables;
      }
      
       /**
     * Sets 
the Map of variables to use
     */
    
       public void setVariables(Map 
variables) {
              this.variables = variables;
    }
      
       /**
     * 
A factory method to create a new child context of the
        * current context.
     
*/
    public JellyContext newJellyContext(Map newVariables) {
                // 
XXXX: should allow this new context to
              // XXXX: inherit parent contexts? 

             // XXXX: Or at least publish the parent scope
          // XXXX: as a 
Map in this new variable scope?
          newVariables.put("parentScope", variables);
 
           JellyContext answer = createChildContext();
            
answer.setVariables(newVariables);
             return answer;
 }
      
       /** 
Registers the given tag library against the given namespace URI.
    * This should be 
called before the parser is used.
     */
    public void registerTagLibrary(String 
namespaceURI, TagLibrary taglib) {
               log.info("Registering tag library 
to: " + namespaceURI + " taglib: " + taglib);
                
taglibs.put(namespaceURI, taglib);
     }
      
       /** Registers the given tag 
library class name against the given namespace URI.
         * The class will be 
loaded via the given ClassLoader
   * This should be called before the parser is used.
     */
    public void registerTagLibrary(
                String namespaceURI,
      
     String className,
              ClassLoader classLoader) {
             try {
    
              Class theClass = classLoader.loadClass(className);
                     
Object object = theClass.newInstance();
                        if (object instanceof 
TagLibrary) {
                            registerTagLibrary(namespaceURI, 
(TagLibrary) object);
                 }
                      else {
                 
        log.error(
                                     "The tag library object mapped 
to: "
                                           + namespaceURI
                       
                  + " is not a TagLibrary. Object = "
                                 
           + object);
                     }
              }
              catch 
(ClassNotFoundException e) {
                     log.error("Could not find the class: 
" + className, e);
                }
              catch (Exception e) {
              
    log.error(
                             "Could not instantiate instance of class: 
" + className + ". Reason: " + e,
                            e);
            }
      
}
      
       /** 
    * @return the TagLibrary for the given namespace URI or null 
if one could not be found
         */
    public TagLibrary getTagLibrary(String 
namespaceURI) {
         return (TagLibrary) taglibs.get(namespaceURI);
 }

     /** 
 
   * Attempts to parse the script from the given uri using the 
   * {#link 
getResource()} method then returns the compiled script.
       */
    public Script 
compileScript(String uri) throws Exception {
             XMLParser parser = new 
XMLParser();
            parser.setJellyContext(this);
          InputStream in = 
getResourceAsStream(uri);
             if (in == null) {
                      throw 
new JellyException("Could not find Jelly script: " + uri);
               }
           
   Script script = parser.parse(in);
              return script.compile();
       }

 
    /** 
    * Attempts to parse the script from the given URL using the 
   * {#link 
getResource()} method then returns the compiled script.
       */
    public Script 
compileScript(URL url) throws Exception {
                XMLParser parser = new 
XMLParser();
            parser.setJellyContext(this);
          Script script = 
parser.parse(url.toString());
          return script.compile();
       }

     /** 
  
  * Attempts to parse the script from the given uri using the 
   * 
JellyContext.getResource() API then compiles it and runs it.
         */
    public 
void runScript(String uri, XMLOutput output) throws Exception {
         URL url = 
getResource(uri);
            if (url == null) {
                     throw new 
JellyException("Could not find Jelly script: " + url);
               }
              
Script script = compileScript(url);
            URL newJellyContextURL = 
getJellyContextURL(url);
              JellyContext newJellyContext = new 
JellyContext(this, newJellyContextURL);
             script.run(newJellyContext, 
output);
   }

     /**
     * Returns a URL for the given resource from the specified 
path.
        * If the uri starts with "/" then the path is taken as relative to 
    
* the current context root. If the uri is a well formed URL then it
    * is used. 
Otherwise the uri is interpreted as relative to the current
         * context (the 
location of the current script).
        */
    public URL getResource(String uri) 
throws MalformedURLException {
              if (uri.startsWith("/")) {
               
      // append this uri to the context root
                 return 
createRelativeURL(rootContext, uri.substring(1));
               }
              else 
{
                 try {
                          return new URL(uri);
               
    }
                      catch (MalformedURLException e) {
                         
     // lets try find a relative resource
                           try {
            
                      return createRelativeURL(currentJellyContext, uri);
             
               }
                              catch (MalformedURLException e2) {
     
                                throw e;
                               }
             
         }
              }
      }

     /**
     * Attempts to open an InputStream to 
the given resource at the specified path.
         * If the uri starts with "/" then 
the path is taken as relative to 
    * the current context root. If the uri is a well 
formed URL then it
    * is used. Otherwise the uri is interpreted as relative to the 
current
         * context (the location of the current script).
        *
      * 
@return null if this resource could not be loaded, otherwise the resources 
  *  input 
stream is returned.
   */
    public InputStream getResourceAsStream(String uri) {
    
       try {
                  URL url = getResource(uri);
                    return 
url.openStream();
               }
              catch (Exception e) {
                
  if (log.isTraceEnabled()) {
                            log.trace(
                  
                   "Caught exception attempting to open: " + uri + ". Exception: " + 
e,
                                   e);
                    }
                      
return null;
           }
      }

     // Implementation methods
      
//-------------------------------------------------------------------------            
    

   /**
     * @return a new relative URL from the given root and with the 
addition of the
  * extra relative URI
   *
      * @param rootURL is the root context 
from which the relative URI will be applied
       * @param relativeURI is the 
relative URI (without a leading "/")
       * @throws MalformedURLException if the URL 
is invalid.
         */
    protected URL createRelativeURL(URL rootURL, String 
relativeURI)
               throws MalformedURLException {
         String urlText = 
null;
         if (rootURL == null) {
                 String userDir = 
System.getProperty("user.dir");
                       urlText = "file://" + userDir + 
relativeURI;
           }
              else {
                 urlText = 
rootURL.toString() + relativeURI;
            }
              log.info("Attempting to 
open url: " + urlText);
                return new URL(urlText);
       }

     /** 
  
  * Strips off the name of a script to create a new context URL
  */
    protected URL 
getJellyContextURL(URL url) throws MalformedURLException {
               String text 
= url.toString();
          int idx = text.lastIndexOf('/');
               text = 
text.substring(0, idx + 1);
             return new URL(text);
  }
      
       /**
  
   * Factory method to create a new child of this context
         */
    protected 
JellyContext createChildContext() {
          return new JellyContext(this);
 }
}
  \ No newline at end of file
  +/*
 * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyContext.java,v
 1.10 2002/04/26 12:20:12 jstrachan Exp $
 * $Revision: 1.10 $
 * $Date: 2002/04/26 
12:20:12 $
 *
 * ====================================================================
 
*
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999-2002 The Apache 
Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source 
and binary forms, with or without
 * modification, 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 acknowlegement:
 *       "This product includes software 
developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    
Alternately, this acknowlegement may appear in the software itself,
 *    if and 
wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The 
Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
 *
 * 5. 
Products derived from this software may not be called "Apache"
 *    nor may "Apache" 
appear in their names without prior written
 *    permission of the Apache Group.
 *
 
* 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 (INCLUDING, 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.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 * 
 * $Id: JellyContext.java,v 
1.10 2002/04/26 12:20:12 jstrachan Exp $
 */
package org.apache.commons.jelly;

import 
java.io.File;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Hashtable;
import java.util.Iterator;
import 
java.util.Map;

import org.apache.commons.jelly.parser.XMLParser;
import 
org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/** 
<p><code>JellyContext</code> represents the Jelly context.</p>
  *
  * @author <a 
href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  * @version $Revision: 1.10 $
  
*/
public class JellyContext {

    /** The root URL context (where scripts are 
located from) */
    private URL rootContext;

    /** The current URL context (where 
relative scripts are located from) */
    private URL currentJellyContext;

    /** 
Tag libraries found so far */
    private Map taglibs = new Hashtable();

    /** 
synchronized access to the variables in scope */
    private Map variables = new 
Hashtable();

    /** The Log to which logging calls will be made. */
    private Log 
log = LogFactory.getLog(JellyContext.class);


    public JellyContext() {
        
this.currentJellyContext = rootContext;
    }

    public JellyContext(URL 
rootContext) {
        this.rootContext = rootContext;
        
this.currentJellyContext = rootContext;
    }

    public JellyContext(URL 
rootContext, URL currentJellyContext) {
        this.rootContext = rootContext;
       
 this.currentJellyContext = currentJellyContext;
    }

    public 
JellyContext(JellyContext parentJellyContext) {
        this.rootContext = 
parentJellyContext.rootContext;
        this.currentJellyContext = 
parentJellyContext.currentJellyContext;
        this.taglibs = 
parentJellyContext.taglibs;
        this.variables.put("parentScope", 
parentJellyContext.variables);
    }

    public JellyContext(JellyContext 
parentJellyContext, URL currentJellyContext) {
        this(parentJellyContext);
      
  this.currentJellyContext = currentJellyContext;
    }

    /** @return the value of 
the given variable name */
    public Object getVariable(String name) {
        return 
variables.get(name);
    }

    /** Sets the value of the given variable name */
    
public void setVariable(String name, Object value) {
        if (value == null) {
     
       variables.remove(name);
        }
        else {
            
variables.put(name, value);
        }
    }

    /** Removes the given variable */
    
public void removeVariable(String name) {
        variables.remove(name);
    }

    
/** 
     * @return an Iterator over the current variable names in this
     * context 

     */
    public Iterator getVariableNames() {
        return 
variables.keySet().iterator();
    }

    /**
     * @return the Map of variables in 
this scope
     */
    public Map getVariables() {
        return variables;
    }

   
 /**
     * Sets the Map of variables to use
     */

    public void setVariables(Map 
variables) {
        this.variables = variables;
    }

    /**
     * A factory 
method to create a new child context of the
     * current context.
     */
    public 
JellyContext newJellyContext(Map newVariables) {
        // XXXX: should allow this 
new context to
        // XXXX: inherit parent contexts? 
        // XXXX: Or at least 
publish the parent scope
        // XXXX: as a Map in this new variable scope?
        
newVariables.put("parentScope", variables);
        JellyContext answer = 
createChildContext();
        answer.setVariables(newVariables);
        return 
answer;
    }

    /** Registers the given tag library against the given namespace 
URI.
     * This should be called before the parser is used.
     */
    public void 
registerTagLibrary(String namespaceURI, TagLibrary taglib) {
        if 
(log.isDebugEnabled()) {
            log.debug("Registering tag library to: " + 
namespaceURI + " taglib: " + taglib);
        }
        taglibs.put(namespaceURI, 
taglib);
    }

    /** Registers the given tag library class name against the given 
namespace URI.
     * The class will be loaded via the given ClassLoader
     * This 
should be called before the parser is used.
     */
    public void 
registerTagLibrary(
        String namespaceURI,
        String className,
        
ClassLoader classLoader) {
        try {
            Class theClass = 
classLoader.loadClass(className);
            Object object = theClass.newInstance();
 
           if (object instanceof TagLibrary) {
                
registerTagLibrary(namespaceURI, (TagLibrary) object);
            }
            else 
{
                log.error(
                    "The tag library object mapped to: "
 
                       + namespaceURI
                        + " is not a TagLibrary. 
Object = "
                        + object);
            }
        }
        catch 
(ClassNotFoundException e) {
            log.error("Could not find the class: " + 
className, e);
        }
        catch (Exception e) {
            log.error(
         
       "Could not instantiate instance of class: " + className + ". Reason: " + e,
    
            e);
        }
    }

    /** 
     * @return the TagLibrary for the given 
namespace URI or null if one could not be found
     */
    public TagLibrary 
getTagLibrary(String namespaceURI) {
        return (TagLibrary) 
taglibs.get(namespaceURI);
    }

    /** 
     * Attempts to parse the script from 
the given uri using the 
     * {#link getResource()} method then returns the compiled 
script.
     */
    public Script compileScript(String uri) throws Exception {
        
XMLParser parser = new XMLParser();
        parser.setJellyContext(this);
        
InputStream in = getResourceAsStream(uri);
        if (in == null) {
            throw 
new JellyException("Could not find Jelly script: " + uri);
        }
        Script 
script = parser.parse(in);
        return script.compile();
    }

    /** 
     * 
Attempts to parse the script from the given URL using the 
     * {#link 
getResource()} method then returns the compiled script.
     */
    public Script 
compileScript(URL url) throws Exception {
        XMLParser parser = new XMLParser();
 
       parser.setJellyContext(this);
        Script script = 
parser.parse(url.toString());
        return script.compile();
    }

    /** 
     * 
Attempts to parse the script from the given uri using the 
     * 
JellyContext.getResource() API then compiles it and runs it.
     */
    public void 
runScript(String uri, XMLOutput output) throws Exception {
        URL url = 
getResource(uri);
        if (url == null) {
            throw new 
JellyException("Could not find Jelly script: " + url);
        }
        Script script 
= compileScript(url);
        URL newJellyContextURL = getJellyContextURL(url);
       
 JellyContext newJellyContext = new JellyContext(this, newJellyContextURL);
        
script.run(newJellyContext, output);
    }

    /**
     * Returns a URL for the given 
resource from the specified path.
     * If the uri starts with "/" then the path is 
taken as relative to 
     * the current context root. If the uri is a well formed URL 
then it
     * is used. Otherwise the uri is interpreted as relative to the current
   
  * context (the location of the current script).
     */
    public URL 
getResource(String uri) throws MalformedURLException {
        if 
(uri.startsWith("/")) {
            // append this uri to the context root
            
return createRelativeURL(rootContext, uri.substring(1));
        }
        else {
     
       try {
                return new URL(uri);
            }
            catch 
(MalformedURLException e) {
                // lets try find a relative resource
      
          try {
                    return createRelativeURL(currentJellyContext, 
uri);
                }
                catch (MalformedURLException e2) {
            
        throw e;
                }
            }
        }
    }

    /**
     * 
Attempts to open an InputStream to the given resource at the specified path.
     * If 
the uri starts with "/" then the path is taken as relative to 
     * the current 
context root. If the uri is a well formed URL then it
     * is used. Otherwise the 
uri is interpreted as relative to the current
     * context (the location of the 
current script).
     *
     * @return null if this resource could not be loaded, 
otherwise the resources 
     *  input stream is returned.
     */
    public 
InputStream getResourceAsStream(String uri) {
        try {
            URL url = 
getResource(uri);
            return url.openStream();
        }
        catch 
(Exception e) {
            if (log.isTraceEnabled()) {
                log.trace(
    
                "Caught exception attempting to open: " + uri + ". Exception: " + e,
  
                  e);
            }
            return null;
        }
    }

    // 
Implementation methods
    
//-------------------------------------------------------------------------            
    
    /**
     * @return a new relative URL from the given root and with the 
addition of the
     * extra relative URI
     *
     * @param rootURL is the root 
context from which the relative URI will be applied
     * @param relativeURI is the 
relative URI (without a leading "/")
     * @throws MalformedURLException if the URL 
is invalid.
     */
    protected URL createRelativeURL(URL rootURL, String 
relativeURI)
        throws MalformedURLException {
        String urlText = null;
    
    if (rootURL == null) {
            String userDir = 
System.getProperty("user.dir");
            urlText = "file://" + userDir + 
relativeURI;
        }
        else {
            urlText = rootURL.toString() + 
relativeURI;
        }
        log.info("Attempting to open url: " + urlText);
        
return new URL(urlText);
    }

    /** 
     * Strips off the name of a script to 
create a new context URL
     */
    protected URL getJellyContextURL(URL url) throws 
MalformedURLException {
        String text = url.toString();
        int idx = 
text.lastIndexOf('/');
        text = text.substring(0, idx + 1);
        return new 
URL(text);
    }

    /**
     * Factory method to create a new child of this context
 
    */
    protected JellyContext createChildContext() {
        return new 
JellyContext(this);
    }
}
  \ No newline at end of file
  
  
  
  1.2       +1 -110    
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/bsf/ContextRegistry.java
  
  Index: ContextRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/bsf/ContextRegistry.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContextRegistry.java      7 Mar 2002 02:46:04 -0000       1.1
  +++ ContextRegistry.java      15 May 2002 07:47:50 -0000      1.2
  @@ -1,110 +1 @@
  -/*
  - * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/bsf/ContextRegistry.java,v
 1.1 2002/03/07 02:46:04 jstrachan Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/03/07 02:46:04 $
  - *
  - * ====================================================================
  - *
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, 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 acknowlegement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowlegement may appear in the software itself,
  - *    if and wherever such third-party acknowlegements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
  - *
  - * 5. Products derived from this software may not be called "Apache"
  - *    nor may "Apache" appear in their names without prior written
  - *    permission of the Apache Group.
  - *
  - * 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 (INCLUDING, 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.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - * 
  - * $Id: ContextRegistry.java,v 1.1 2002/03/07 02:46:04 jstrachan Exp $
  - */
  -package org.apache.commons.jelly.tags.bsf;
  -
  -import com.ibm.bsf.util.ObjectRegistry;
  -
  -import org.apache.commons.jelly.Context;
  -
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -
  -
  -/** A BSF ObjectRegistry which uses the Context to find and
  -  * register objects
  -  *
  -  * @author <a href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  -  * @version $Revision: 1.1 $
  -  */
  -public class ContextRegistry extends ObjectRegistry {
  -
  -    /** The Log to which logging calls will be made. */
  -    private static final Log log = LogFactory.getLog( ContextRegistry.class );
  -
  -    /** The context */
  -    private Context context;
  -    
  -    public ContextRegistry() {
  -    }
  -
  -    public Context getContext() {
  -        return context;
  -    }
  -    
  -    public void setContext(Context context) {
  -        this.context = context;
  -    }
  -    
  -    // ObjectRegistry interface
  -    //------------------------------------------------------------------------- 
  -    public Object lookup(String name) {
  -        return context.getVariable( name );
  -    }
  -    
  -    public void register(String name, Object value) {
  -        context.setVariable( name, value );
  -    }
  -    
  -    public void unregister(String name) {
  -        context.removeVariable( name );
  -    }        
  -}
  +/*
 * $Header: 
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/bsf/ContextRegistry.java,v
 1.2 2002/05/15 07:47:50 jstrachan Exp $
 * $Revision: 1.2 $
 * $Date: 2002/05/15 
07:47:50 $
 *
 * ====================================================================
 
*
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999-2002 The Apache 
Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source 
and binary forms, with or without
 * modification, 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 acknowlegement:
 *       "This product includes software 
developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    
Alternately, this acknowlegement may appear in the software itself,
 *    if and 
wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The 
Jakarta Project", "Commons", 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 [EMAIL PROTECTED]
 *
 * 5. 
Products derived from this software may not be called "Apache"
 *    nor may "Apache" 
appear in their names without prior written
 *    permission of the Apache Group.
 *
 
* 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 (INCLUDING, 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.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 * 
 * $Id: ContextRegistry.java,v 
1.2 2002/05/15 07:47:50 jstrachan Exp $
 */
package org.apache.commons.jelly.tags.bsf;

import com.ibm.bsf.util.ObjectRegistry;

import 
org.apache.commons.jelly.JellyContext;
import org.apache.commons.logging.Log;
import 
org.apache.commons.logging.LogFactory;

/** A BSF ObjectRegistry which uses the 
Context to find and
  * register objects
  *
  * @author <a 
href="mailto:[EMAIL PROTECTED]";>James Strachan</a>
  * @version $Revision: 1.2 $
  
*/
public class ContextRegistry extends ObjectRegistry {

    /** The Log to which 
logging calls will be made. */
    private static final Log log = 
LogFactory.getLog(ContextRegistry.class);

    /** The context */
    private 
JellyContext context;

    public ContextRegistry() {
    }

    public JellyContext 
getContext() {
        return context;
    }

    public void setContext(JellyContext 
context) {
        this.context = context;
    }

    // ObjectRegistry interface
    
//------------------------------------------------------------------------- 
    
public Object lookup(String name) {
        return context.getVariable(name);
    }

  
  public void register(String name, Object value) {
        context.setVariable(name, 
value);
    }

    public void unregister(String name) {
        
context.removeVariable(name);
    }
}
  \ No newline at end of file
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to