You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2003/03/12 17:50:13 UTC

cvs commit: jakarta-tapestry/package-lists/jcommon package-list

hlship      2003/03/12 08:50:13

  Modified:    examples/Workbench/src/org/apache/tapestry/workbench/chart
                        ChartService.java IChartProvider.java
               examples/Workbench/context/WEB-INF Chart.page
               examples/Workbench/context Chart.html
               .        Readme.html build.xml .classpath TODO.html
               eclipse  Tapestry-Workbench.launch
               ext-dist README.html
  Added:       examples/Workbench/src/org/apache/tapestry/workbench/chart
                        ChartPage.java
               .        STATUS.html
  Removed:     examples/Workbench/src/org/apache/tapestry/workbench/chart
                        Chart.java
               package-lists/jfreechart package-list
               package-lists/jcommon package-list
  Log:
  Replace JFreeChart (LGPL) with jCharts (BSD) for licensing reasons.
  
  Revision  Changes    Path
  1.2       +13 -11    jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/chart/ChartService.java
  
  Index: ChartService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/chart/ChartService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ChartService.java	5 Mar 2003 23:08:30 -0000	1.1
  +++ ChartService.java	12 Mar 2003 16:50:11 -0000	1.2
  @@ -59,6 +59,8 @@
   
   import javax.servlet.ServletException;
   
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.tapestry.IComponent;
   import org.apache.tapestry.IPage;
   import org.apache.tapestry.IRequestCycle;
  @@ -67,17 +69,14 @@
   import org.apache.tapestry.engine.IEngineServiceView;
   import org.apache.tapestry.engine.ILink;
   import org.apache.tapestry.request.ResponseOutputStream;
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -
  -import com.jrefinery.chart.ChartUtilities;
  -import com.jrefinery.chart.JFreeChart;
  +import org.jCharts.Chart;
  +import org.jCharts.encoders.JPEGEncoder13;
   
   /**
  - *  ServiceLink that works with a {@link JFreeChart} to dynamically render
  + *  ServiceLink that works with a {@link Chart} to dynamically render
    *  a chart as a JPEG.  This is a very limited implementation; a full version
    *  would include features such as setting the size of the image, and more flexibility
  - *  in defining where the {@link JFreeChart} instance is obtained from.
  + *  in defining where the {@link Chart} instance is obtained from.
    *
    *  @author Howard Lewis Ship
    *  @version $Id$
  @@ -110,7 +109,10 @@
           return constructLink(cycle, SERVICE_NAME, context, null, true);
       }
   
  -    public boolean service(IEngineServiceView engine, IRequestCycle cycle, ResponseOutputStream output)
  +    public boolean service(
  +        IEngineServiceView engine,
  +        IRequestCycle cycle,
  +        ResponseOutputStream output)
           throws RequestCycleException, ServletException, IOException
       {
           String context[] = getServiceContext(cycle.getRequestContext());
  @@ -125,7 +127,7 @@
           {
               IChartProvider provider = (IChartProvider) component;
   
  -            JFreeChart chart = provider.getChart();
  +            Chart chart = provider.getChart();
   
               output.setContentType("image/jpeg");
   
  @@ -135,7 +137,7 @@
   
               synchronized (this)
               {
  -                ChartUtilities.writeChartAsJPEG(output, chart, 400, 350);
  +                JPEGEncoder13.encode(chart, 1.0f, output);
               }
           }
           catch (ClassCastException ex)
  
  
  
  1.2       +4 -4      jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/chart/IChartProvider.java
  
  Index: IChartProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/chart/IChartProvider.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IChartProvider.java	5 Mar 2003 23:08:30 -0000	1.1
  +++ IChartProvider.java	12 Mar 2003 16:50:11 -0000	1.2
  @@ -55,10 +55,10 @@
   
   package org.apache.tapestry.workbench.chart;
   
  -import com.jrefinery.chart.JFreeChart;
  +import org.jCharts.Chart;
   
   /**
  - *  An object which can provide a {@link JFreeChart} (to the {@link ChartService}).
  + *  An object which can provide a {@link Chart} (to the {@link ChartService}).
    * 
    *  @author Howard Lewis Ship
    *  @version $Id$
  @@ -68,5 +68,5 @@
   
   public interface IChartProvider
   {
  -    public JFreeChart getChart();
  +    public Chart getChart();
   }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/chart/ChartPage.java
  
  Index: ChartPage.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2000-2003 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 acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation", "Tapestry" 
   *    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" 
   *    or "Tapestry", nor may "Apache" or "Tapestry" 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 TAPESTRY CONTRIBUTOR COMMUNITY
   * 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/>.
   *
   */
  
  package org.apache.tapestry.workbench.chart;
  
  import java.awt.Color;
  import java.awt.Paint;
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.tapestry.IAsset;
  import org.apache.tapestry.IMarkupWriter;
  import org.apache.tapestry.IRequestCycle;
  import org.apache.tapestry.RequestCycleException;
  import org.apache.tapestry.Tapestry;
  import org.apache.tapestry.html.BasePage;
  import org.apache.tapestry.valid.IValidationDelegate;
  import org.jCharts.Chart;
  import org.jCharts.chartData.ChartDataException;
  import org.jCharts.chartData.PieChartDataSet;
  import org.jCharts.nonAxisChart.PieChart2D;
  import org.jCharts.properties.ChartProperties;
  import org.jCharts.properties.LegendProperties;
  import org.jCharts.properties.PieChart2DProperties;
  import org.jCharts.test.TestDataGenerator;
  
  /**
   *  Demonstrates more complex form handling (including loops and dynamic addition/deletion of
   *  rows) as well as dynamic image generation using {@link JCharts}.
   * 
   *  @author Howard Lewis Ship, Luis Neves
   *  @version $Id: ChartPage.java,v 1.1 2003/03/12 16:50:11 hlship Exp $
   *  @since 1.0.10
   * 
   **/
  
  public class ChartPage extends BasePage implements IChartProvider
  {
      private List _plotValues;
      private List _removeValues;
      private PlotValue _plotValue;
  
      public void initialize()
      {
          _plotValues = null;
          _removeValues = null;
          _plotValue = null;
      }
  
      /**
       *  Invokes {@link #getPlotValues()}, which ensures that (on the very first request cycle),
       *  the persistent values property is set <em>before</em> the page recorder is locked.
       * 
       **/
  
      public void beginResponse(IMarkupWriter writer, IRequestCycle cycle)
          throws RequestCycleException
      {
          getPlotValues();
      }
  
      public List getPlotValues()
      {
          if (_plotValues == null)
          {
              _plotValues = new ArrayList();
  
              _plotValues.add(new PlotValue("Fred", 10));
              _plotValues.add(new PlotValue("Barney", 15));
              _plotValues.add(new PlotValue("Dino", 7));
  
              fireObservedChange("plotValues", _plotValues);
          }
  
          return _plotValues;
      }
  
      public void setPlotValues(List plotValues)
      {
          _plotValues = plotValues;
  
          fireObservedChange("plotValues", plotValues);
      }
  
      public PlotValue getPlotValue()
      {
          return _plotValue;
      }
  
      public void setPlotValue(PlotValue plotValue)
      {
          _plotValue = plotValue;
      }
  
      /**
       *  Invoked during the render; always returns false.
       * 
       **/
  
      public boolean isMarkedForDeletion()
      {
          return false;
      }
  
      /**
       *  Invoked by the deleted checkbox (for each plotValue).  If true,
       *  the the current plotValue is added to the list of plotValues to
       *  remove (though the actual removing is done inside {@link #delete(IRequestCycle)},
       *  after the loop.
       *
       **/
  
      public void setMarkedForDeletion(boolean value)
      {
          if (value)
          {
              if (_removeValues == null)
                  _removeValues = new ArrayList();
  
              _removeValues.add(_plotValue);
  
              // Deleting things screws up the validation delegate.
              // That's because the errors are associated with the form name
              // (not the component id), and deleting elements causes
              // all the names to shift.
  
              IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");
  
              delegate.clear();
          }
      }
  
      /**
       *  Form listener method; does nothing since we want to stay on this page.
       * 
       **/
  
      public void submit(IRequestCycle cycle)
      {
      }
  
      /**
       *  Listener method for the add button, adds an additional (blank) plot value.
       * 
       **/
  
      public void add(IRequestCycle cycle)
      {
          List plotValues = getPlotValues();
  
          plotValues.add(new PlotValue());
  
          setPlotValues(plotValues);
      }
  
      /**
       *  Listener method for the remove button, removes any checked plot values.
       * 
       *  @see #setMarkedForDeletion(boolean)
       * 
       **/
  
      public void delete(IRequestCycle cycle)
      {
          if (_removeValues != null)
          {
              List plotValues = getPlotValues();
  
              plotValues.removeAll(_removeValues);
  
              setPlotValues(plotValues);
          }
      }
  
      private IAsset chartImageAsset;
  
      public IAsset getChartImageAsset()
      {
          if (chartImageAsset == null)
              chartImageAsset = new ChartAsset(getRequestCycle(), this);
  
          return chartImageAsset;
      }
  
      /**
       *  This method is invoked by the service (in a seperate request cycle from all the form handling stuff).
       *  The {@link #getChartImageAsset()} method provides an {@link IAsset} that is handled by the 
       *  {@link ChartService}, and the asset encodes the identity of this page.
       * 
       **/
  
      public Chart getChart()
      {
          LegendProperties legendProperties = new LegendProperties();
          legendProperties.setNumColumns(2);
          legendProperties.setPlacement(LegendProperties.RIGHT);
          ChartProperties chartProperties = new ChartProperties();
          chartProperties.setBackgroundPaint(Color.decode("#ffffcc"));
  
          Chart result = new PieChart2D(getData(), legendProperties, chartProperties, 400, 350);
  
          return result;
      }
  
      private PieChartDataSet getData()
      {
          List plotValues = getPlotValues();
          int count = plotValues.size();
          double[] data = new double[count];
          String[] labels = new String[count];
          PieChart2DProperties properties = new PieChart2DProperties();
  
          for (int i = 0; i < count; i++)
          {
              PlotValue pv = (PlotValue) plotValues.get(i);
  
              String name = pv.getName();
  
              if (Tapestry.isNull(name))
                  name = "<New>";
  
              data[i] = new Double(pv.getValue()).doubleValue();
              labels[i] = new String(name);
          }
  
          Paint[] paints = TestDataGenerator.getRandomPaints(count);
          
          try
          {
              return new PieChartDataSet("Pie Chart", data, labels, paints, properties);
          }
          catch (ChartDataException e)
          {
              return null;
          }
      }
  
  }
  
  
  1.3       +2 -2      jakarta-tapestry/examples/Workbench/context/WEB-INF/Chart.page
  
  Index: Chart.page
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/examples/Workbench/context/WEB-INF/Chart.page,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Chart.page	6 Mar 2003 17:19:29 -0000	1.2
  +++ Chart.page	12 Mar 2003 16:50:11 -0000	1.3
  @@ -4,7 +4,7 @@
     "-//Apache Software Foundation//Tapestry Specification 1.4//EN" 
     "http://jakarta.apache.org/tapestry/dtd/Tapestry_1_4.dtd">
   
  -<page-specification class="org.apache.tapestry.workbench.chart.Chart">
  +<page-specification class="org.apache.tapestry.workbench.chart.ChartPage">
   
     <bean name="delegate" class="org.apache.tapestry.workbench.WorkbenchValidationDelegate"/>
   
  
  
  
  1.2       +2 -2      jakarta-tapestry/examples/Workbench/context/Chart.html
  
  Index: Chart.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/examples/Workbench/context/Chart.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Chart.html	5 Mar 2003 23:08:17 -0000	1.1
  +++ Chart.html	12 Mar 2003 16:50:11 -0000	1.2
  @@ -3,7 +3,7 @@
   <span jwcid="@Border">
   
   <p>This page demonstrates using a form to drive the dynamic generation of a
  -chart (courtesy of <a href="http://www.object-refinery.com/jfreechart/">JFreeChart</a>).
  +chart (courtesy of <a href="http://jcharts.sourceforge.net/">jCharts</a>).
   Enter names and values in the form and see them in the pie chart at the bottom.
   
   
  
  
  
  1.84      +10 -9     jakarta-tapestry/Readme.html
  
  Index: Readme.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/Readme.html,v
  retrieving revision 1.83
  retrieving revision 1.84
  diff -u -r1.83 -r1.84
  --- Readme.html	6 Mar 2003 19:19:33 -0000	1.83
  +++ Readme.html	12 Mar 2003 16:50:11 -0000	1.84
  @@ -1,7 +1,8 @@
   <html>
   <!-- $Id$ -->
   <head>
  -<title>Tapestry: Java Web Components</title><link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css">
  +<title>Tapestry: Java Web Components</title>
  +<link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css">
   </head>
   
   <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
  @@ -73,7 +74,7 @@
   and rename this file.
   
   <p>
  -In addition, you will need to download two libraries needed by the Workbench application and 
  +In addition, you will need to download a library needed by the Workbench application and 
   two libraries needed by the Virtual Library.  These
   files are placed into the
   <code>ext-dist</code>
  @@ -96,7 +97,7 @@
   			<b><code>jboss.dir</code></b>
   			to the absolute path name
   			of the JBoss installation directory.
  -				<li>Download the external dependencies
  +				<li>Download the external dependencies.
   				<li>Execute the command:
   				<br>
   			<b><code>ant -emacs configure run-jboss</code></b>
  @@ -119,14 +120,14 @@
   <p>To run the Tapestry Workbench application with 
   Jetty servlet container:
   			<ul>
  -				<li>Obtain and install a copy of Jetty
  +				<li>Obtain and install a copy of Jetty.
   				<li>
   			Update <code>config/build.properties</code>
   			and set property
   			<b><code>jetty.dir</code></b>
   			to the absolute path name
   			of the Jetty installation directory.
  -					<li>Download the external dependencies
  +					<li>Download the external dependencies.
   				<li>Execute the command:
   				<br>
   				<b>
  @@ -142,19 +143,19 @@
   			<h3>Configuring Tomcat</h3>
   			
   <p>To deploy the Tapestry Workbench application onto an existing 
  -Tomcat:
  +Tomcat installation:
   
   <p>To run the Tapestry Workbench application with 
   Tomcat servlet container:
   			<ul>
  -				<li>Obtain and install a copy of Tomcat
  +				<li>Obtain and install a copy of Tomcat.
   				<li>
   			Update <code>config/build.properties</code>
   			and set property
   			<b><code>tomcat.dir</code></b>
   			to the absolute path name
   			of the Tomcat installation directory, for example <code>C:/Program Files/Apache Group/Tomcat 4.1</code>.
  -					<li>Download the external dependencies
  +					<li>Download the external dependencies.
   				<li>Execute the command:
   				<br>
   				<b>
  
  
  
  1.76      +37 -15    jakarta-tapestry/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/build.xml,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- build.xml	10 Mar 2003 19:25:20 -0000	1.75
  +++ build.xml	12 Mar 2003 16:50:11 -0000	1.76
  @@ -3,9 +3,10 @@
   <!-- Top-level buildfile for the Tapestry module. -->
   <project name="Tapestry Web Application Framework" default="install">
   	<property name="root.dir" value="./"/>
  -	<property file="${root.dir}/config/Version.properties"/>
  -	<property file="${root.dir}/config/build.properties"/>
  -	<property file="${root.dir}/config/common.properties"/>
  +	<property name="config.dir" value="${root.dir}/config"/>
  +	<property file="${config.dir}/Version.properties"/>
  +	<property file="${config.dir}/build.properties"/>
  +	<property file="${config.dir}/common.properties"/>
   	<property name="javadoc.dir" value="web/doc/api"/>
   	<property name="private.dir" value="private"/>
   	<property environment="env"/>
  @@ -84,6 +85,7 @@
   		>
   		<ant dir="junit" target="clover" inheritAll="false"/>
   	</target>
  +	
   	<target name="dist"
   		description="Builds the Tapestry distribution from scratch."
   		depends="clean-all,install,junit,documentation,clover,javadoc">
  @@ -92,15 +94,18 @@
   		<!-- Now, build that actual distribution. -->
   		<antcall target="build-dist"/>
   	</target>
  +	
   	<property name="dist.root.dir" value="dist"/>
   	<property name="dist.base" value="Tapestry-${framework.version}"/>
   	<property name="dist.dir" value="${dist.root.dir}/${dist.base}"/>
  +	
   	<target name="build-dist"
   		description="Builds the Tapestry distribution files.">
   		<!-- Delete the base directory. -->
   		<delete dir="${dist.root.dir}" quiet="true"/>
   		<antcall target="build-dist-tarball"/>
   	</target>
  +	
   	<target name="build-dist-copy">
   		<!-- Copy all the relevant files to the base directory. -->
   		<copy todir="${dist.dir}" includeEmptyDirs="false">
  @@ -162,6 +167,13 @@
   				<exclude name="${vlibbeans.jar}"/>
   			</fileset>
   		</copy>
  +		
  +		<copy todir="${dist.dir}/lib" flatten="true">
  +			<fileset dir="examples">
  +				<include name="**/*.tld"/>	
  +			</fileset>
  +		</copy>
  +		
   		<copy todir="${dist.dir}">
   			<fileset dir=".">
   				<include name="framework/**"/>
  @@ -219,21 +231,21 @@
   		<mkdir dir="${javadoc.dir}"/>
   		<javadoc author="true" version="true" destdir="${javadoc.dir}"
   			splitindex="true" windowtitle="Tapestry API ${framework.version}">
  -			<doctitle>Tapestry API (Release ${framework.version})</doctitle>
  +			<doctitle>Tapestry ${framework.version} API</doctitle>
   			<package name="org.apache.tapestry.*"/>
   
   			<link href="http://java.sun.com/products/jdk/1.2/docs/api/"
   				offline="true" packageListLoc="package-lists/jdk"/>
  +
   			<link href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/"
   				offline="true" packageListLoc="package-lists/j2ee"/>
  +
   			<link href="http://jakarta.apache.org/log4j/docs/api/"
   				offline="true" packageListLoc="package-lists/log4j"/>
  +
   			<link href="http://www.junit.org/junit/javadoc/3.7/" offline="true"
   				packageListLoc="package-lists/junit"/>
  -			<link href="http://www.object-refinery.com/jcommon/javadoc/"
  -				offline="true" packageListLoc="package-lists/jcommon"/>
  -			<link href="http://www.object-refinery.com/jfreechart/javadoc/"
  -				offline="true" packageListLoc="package-lists/jfreechart"/>
  +
   			<link href="http://jakarta.apache.org/oro/api/" offline="true"
   				packageListLoc="package-lists/jakarta-oro"/>
   				
  @@ -319,8 +331,7 @@
   			</fileset>
   			<fileset dir="${ext.dist.dir}">
   				<include name="mckoidb*.jar"/>
  -				<include name="jcommon*.jar"/>
  -				<include name="jfreechart*.jar"/>
  +				<include name="jChart*.jar"/>
   			</fileset>
   		</copy>
   		<!-- Delete, recreate and copy -->
  @@ -404,24 +415,35 @@
   		</java>
   	</target>
   	
  +	<!-- Unpacks the Workbench ('cause Tomcat does that anyway), and copies
  +		 all the necessary JARs into the WEB-INF/libs folder.  -->
  +		
   	<target name="deploy-tomcat"
   		depends="check-for-tomcat-dir"
   		description="Deploys the Workbench application into Tomcat.">
  -		<unjar src="${lib.dir}/${workbench.war}" dest="${tomcat.dir}/webapps/workbench"/>
  +		
  +		<property name="workbench.deploy.root.dir" value="${tomcat.dir}/webapps/workbench"/>
   		<property name="web.lib"
  -			value="${tomcat.dir}/webapps/workbench/WEB-INF/lib"/>
  +			value="${workbench.deploy.root.dir}/WEB-INF/lib"/>
  +			
  +		<unjar src="${lib.dir}/${workbench.war}" dest="${workbench.deploy.root.dir}"/>
  +
   		<copy todir="${web.lib}" flatten="true">
   			<fileset dir="${lib.dir}">
   				<include name="${framework.jar}"/>
   				<include name="${contrib.jar}"/>
   				<include name="${ext.dir}/*.jar"/>
  +				<include name="${runtime.dir}/*.jar"/>
   			</fileset>
   			<fileset dir="${ext.dist.dir}">
  -				<include name="jfreechart*.jar"/>
  -				<include name="jcommon*.jar"/>
  +				<include name="jChart*.jar"/>
   			</fileset>
   		</copy>
  +		
  +		<copy file="${config.dir}/log4j.properties"
  +			 todir="${workbench.deploy.root.dir}/WEB-INF/classes"/>
   	</target>
  +	
   	<target name="check-for-jboss-dir">
   		<available property="exists.jboss.dir" type="dir" file="${jboss.dir}"/>
   		<fail unless="jboss.dir"
  
  
  
  1.27      +1 -2      jakarta-tapestry/.classpath
  
  Index: .classpath
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/.classpath,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- .classpath	6 Mar 2003 17:19:32 -0000	1.26
  +++ .classpath	12 Mar 2003 16:50:11 -0000	1.27
  @@ -19,9 +19,8 @@
       <classpathentry kind="var" path="JETTY_DIR/lib/javax.servlet.jar"/>
       <classpathentry kind="var" path="JETTY_DIR/ext/javax.xml.jaxp.jar"/>
       <classpathentry kind="var" path="JETTY_DIR/ext/crimson.jar"/>
  -    <classpathentry kind="lib" path="ext-dist/jcommon-0.6.4.jar"/>
       <classpathentry kind="lib" path="ext-dist/jdom-b8.jar"/>
  -    <classpathentry kind="lib" path="ext-dist/jfreechart-0.9.2.jar"/>
       <classpathentry kind="lib" path="ext-dist/junit.jar"/>
  +    <classpathentry kind="lib" path="ext-dist/jCharts-0.6.0.jar"/>
       <classpathentry kind="output" path="bin"/>
   </classpath>
  
  
  
  1.9       +4 -4      jakarta-tapestry/TODO.html
  
  Index: TODO.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/TODO.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TODO.html	11 Mar 2003 15:24:15 -0000	1.8
  +++ TODO.html	12 Mar 2003 16:50:11 -0000	1.9
  @@ -1,15 +1,15 @@
  -<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  +<!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//EN">
   <html>
   <head>
   <title>Tapestry TODO List</title>
  +<link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css">
   </head>
   <body>
   <h1>Release 2.4</h1>
   	
  -		<br>$Id$
  +<br>$Id$
   			
  -<p>Some of these items overlap requests in SourceForge and/or Bugzilla (and/or Scarab).
  -	
  +<p>Some of these items overlap requests in SourceForge and/or Bugzilla.
   		
   <p><i>This list is anything but final!</i> 
   	
  
  
  
  1.1                  jakarta-tapestry/STATUS.html
  
  Index: STATUS.html
  ===================================================================
  <!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  <html>
  <head>
  <title>Tapestry Status</title>
  <link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css"/>
  </head>
  <body>
  
  $Id: STATUS.html,v 1.1 2003/03/12 16:50:11 hlship Exp $
  
  <br/>
  
  <h1>Committers</h1>
  
  <ul>
  <li>Mind Bridge &lt; &gt;</li>
  <li>Neil Clayton &lt;neil at cloudnine dot net dot nz&gt;</li>
  <li>Malcolm Edgar &lt;malcolm_edgar at hotmail dot com&gt;</li>
  <li>Richard Lewis-Shell &lt;rlewisshell at mac dot com&gt;</li>
  <li>Howard M. Lewis Ship &lt;hlship at apache dot org&gt;</li>
  <li>Geoff Longman &lt;glongman at intelligentworks dot com&gt;</li>
  <li>David Solis &lt;dsolis at legosoft dot com dot mx&gt;</li>
  </ul>
  
  <h1>Votes - Release 2.4</h1>
  
  <h2>Mar 7 2003 - Nominate David Solis as Tapestry Commiter</h2>
  
  <blockquote>
  <p>There really didn't seem to be much discussion ... everyone seems to be in favor.  Mind Bridge seems very absent of late.</p>
  
  <p>Let's put it to a vote.  No answer within 24 hours will be treated as a +0.</p>
  
  <p>If voted in, David Solis will be invited to become a Tapestry committer; will be granted voting rights and update access to the CVS repository.	</p>
  </blockquote>
  
  <p>Results:
  <ul>
  <li>Howard Lewis Ship: +1</li>
  <li>Mind Bridge: +0</li>
  <li>Neil Clayton: +1</li>
  <li>Malcolm Edgar: +0</li>
  <li>Richard Lewis-Shell: +1</li>
  <li>Geoff Longman: +1</li>
  </ul>	
  	
  </p>
  
  </body>
  </html>
  
  
  1.2       +9 -34     jakarta-tapestry/eclipse/Tapestry-Workbench.launch
  
  Index: Tapestry-Workbench.launch
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/eclipse/Tapestry-Workbench.launch,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Tapestry-Workbench.launch	10 Mar 2003 19:25:20 -0000	1.1
  +++ Tapestry-Workbench.launch	12 Mar 2003 16:50:13 -0000	1.2
  @@ -1,10 +1,9 @@
   <?xml version="1.0" encoding="UTF-8"?>
   <launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
       <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
  -    <booleanAttribute key="org.eclipse.debug.ui.debugFavorite" value="true"/>
       <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.mortbay.jetty.Server"/>
  +    <booleanAttribute key="org.eclipse.debug.ui.debugFavorite" value="true"/>
       <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="jetty.xml"/>
  -    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.tapestry.disable-caching=true"/>
       <listAttribute key="org.eclipse.jdt.launching.SOURCE_PATH">
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry containerPath=&quot;JRE_LIB&quot; path=&quot;2&quot;
  @@ -130,10 +129,11 @@
   &lt;runtimeClasspathEntry containerPath=&quot;JETTY_DIR/ext/ant.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
       </listAttribute>
  +    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.tapestry.disable-caching=true"/>
       <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="jakarta-tapestry/examples/Workbench"/>
  +    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_default"/>
       <booleanAttribute
           key="org.eclipse.jdt.launching.DEFAULT_SOURCE_PATH" value="false"/>
  -    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_default"/>
       <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry containerPath=&quot;JRE_LIB&quot; path=&quot;2&quot;
  @@ -161,22 +161,10 @@
       path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;JBOSS_DIR/lib/jboss-jmx.jar&quot;
  -    path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry containerPath=&quot;JBOSS_DIR/server/all/lib/mail.jar&quot;
       path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;JBOSS_DIR/lib/jboss-system.jar&quot;
  -    path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;JBOSS_DIR/lib/jboss-common.jar&quot;
  -    path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry
       internalArchive=&quot;/jakarta-tapestry/lib/ext/commons-lang-1.0.jar&quot;
       path=&quot;3&quot; type=&quot;2&quot;/&gt;
  @@ -208,23 +196,20 @@
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry
  -    containerPath=&quot;TAPESTRY_EXT_DIR/jcommon-0.6.4.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
  +    internalArchive=&quot;/jakarta-tapestry/ext-dist/jdom-b8.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry
  -    containerPath=&quot;TAPESTRY_EXT_DIR/jfreechart-0.9.2.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
  +    internalArchive=&quot;/jakarta-tapestry/ext-dist/junit.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry
  -    containerPath=&quot;TAPESTRY_EXT_DIR/mckoidb-0.94h.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;TAPESTRY_EXT_DIR/jdom-b8.jar&quot;
  -    path=&quot;3&quot; type=&quot;3&quot;/&gt;
  +    internalArchive=&quot;/jakarta-tapestry/ext-dist/jCharts-0.6.0.jar&quot;
  +    path=&quot;3&quot; type=&quot;2&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;TAPESTRY_EXT_DIR/junit.jar&quot;
  -    path=&quot;3&quot; type=&quot;3&quot;/&gt;
  +&lt;runtimeClasspathEntry
  +    containerPath=&quot;JETTY_DIR/lib/org.mortbay.jetty-jdk1.2.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry
  @@ -232,22 +217,12 @@
       path=&quot;3&quot; type=&quot;2&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry
  -    containerPath=&quot;JETTY_DIR/lib/org.mortbay.jetty-jdk1.2.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry containerPath=&quot;JETTY_DIR/ext/jasper-compiler.jar&quot;
       path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
           <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
   &lt;runtimeClasspathEntry containerPath=&quot;JETTY_DIR/ext/jasper-runtime.jar&quot;
       path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;JETTY_DIR/ext/ant.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
  -"/>
  -        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  -&lt;runtimeClasspathEntry containerPath=&quot;JDK_DIR/lib/tools.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;
   "/>
       </listAttribute>
       <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jakarta-tapestry"/>
  
  
  
  1.2       +3 -9      jakarta-tapestry/ext-dist/README.html
  
  Index: README.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/ext-dist/README.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- README.html	6 Mar 2003 17:19:41 -0000	1.1
  +++ README.html	12 Mar 2003 16:50:13 -0000	1.2
  @@ -28,14 +28,8 @@
   </tr>
   
   <tr>
  -<td>jcommon-0.6.4.jar</td>
  -<td><a href="http://www.object-refinery.com/jcommon/">http://www.object-refinery.com/jcommon/</a></td>
  -<td>Generates charts in Workbench example</td>
  -</tr>
  -
  -<tr>
  -<td>jfreechart-0.9.2.jar</td>
  -<td><a href="http://www.object-refinery.com/jfreechart/">http://www.object-refinery.com/jfreechart/</a></td>
  +<td>jCharts-0.6.0.jar</td>
  +<td><a href="http://jcharts.sourceforge.net/">http://jcharts.sourceforge.net/</a></td>
   <td>Generates charts in Workbench example</td>
   </tr>