You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2002/10/10 22:05:21 UTC

cvs commit: jakarta-commons-sandbox/threadpool project.properties .cvsignore maven.xml LICENSE.txt project.xml

jstrachan    2002/10/10 13:05:21

  Added:       threadpool/src/java/org/apache/commons/threadpool
                        package.html ThreadPool.java DefaultThreadPool.java
                        MTQueue.java
               threadpool/xdocs index.xml
               threadpool/src/test/org/apache/commons/threadpool
                        TestThreadPool.java
               threadpool project.properties .cvsignore maven.xml
                        LICENSE.txt project.xml
  Log:
  A simple ThreadPool component that can be useful for some simple lightweight asynchronous processing within a single process.
  This can be useful in Servlet engines or Swing applications when some small things require asynchonrous processing.
  
  The basic idea is you do...
  
  ThreadPool threadPool = ...;
  threadPool.invokeLater( 
  	new Runnable() {
  		public void run() {
  			// do something
  		}
  	}
  );
  
  Revision  Changes    Path
  1.1                  jakarta-commons-sandbox/threadpool/src/java/org/apache/commons/threadpool/package.html
  
  Index: package.html
  ===================================================================
  <html>
  <head>
  </head>
  <body>
  
    <p>
  		The Core API of Commons ThreadPool which revolves around a simple {@link ThreadPool} interface.
  		In addition the {@link MTQueue} can be useful for low level inter-thread communication.
    </p>
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/src/java/org/apache/commons/threadpool/ThreadPool.java
  
  Index: ThreadPool.java
  ===================================================================
  /*
   * $Header: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/UtilTagLibrary.java,v 1.1 2002/07/16 05:43:32 werken Exp $
   * $Revision: 1.1 $
   * $Date: 2002/07/16 05:43:32 $
   *
   * ====================================================================
   *
   * 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 apache@apache.org.
   *
   * 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: SoapTagLibrary.java,v 1.1 2002/07/16 05:43:32 moatas Exp $
   */
  package org.apache.commons.threadpool;
  
  /** 
   * An interface representing some kind of thread pool which allows
   * asynchronous dispatching of Runnable tasks. It is the responsibility
   * of the Runnable task to handle exceptions gracefully. Any non handled
   * exception will typically just be logged. 
   * Though a ThreadPool implementation could have some custom Exception handler
   * 
   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
   * @version $Revision: 1.5 $
   */
  public interface ThreadPool {
  
      /** 
       * Dispatch a new task onto this pool 
       * to be invoked asynchronously later.
       */
      public void invokeLater(Runnable task);
  }
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/src/java/org/apache/commons/threadpool/DefaultThreadPool.java
  
  Index: DefaultThreadPool.java
  ===================================================================
  /*
   * $Header: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/UtilTagLibrary.java,v 1.1 2002/07/16 05:43:32 werken Exp $
   * $Revision: 1.1 $
   * $Date: 2002/07/16 05:43:32 $
   *
   * ====================================================================
   *
   * 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 apache@apache.org.
   *
   * 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: SoapTagLibrary.java,v 1.1 2002/07/16 05:43:32 moatas Exp $
   */
  package org.apache.commons.threadpool;
  
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  
  /** 
   * A default implementation of a ThreadPool
   * which is constructed with a given number of threads.
   *
   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
   * @version $Revision: 1.5 $
   */
  public class DefaultThreadPool implements Runnable, ThreadPool {
  
      /** The Log to which logging calls will be made. */
      private Log log = LogFactory.getLog(DefaultThreadPool.class);
  
      private MTQueue queue = new MTQueue();
      private boolean stopped = false;
  
      public DefaultThreadPool() {
          // typically a thread pool should have at least 1 thread
          startThread();
      }
  
      public DefaultThreadPool(int numberOfThreads) {
          for ( int i = 0; i < numberOfThreads; i++ ) {
              startThread();
          }
      }
  
      public DefaultThreadPool(int numberOfThreads, int threadPriority) {
          for ( int i = 0; i < numberOfThreads; i++ ) {
              startThread(threadPriority);
          }
      }
      
      /** Start a new thread running */
      public Thread startThread() {
          Thread thread = new Thread( this );
          thread.start();
          return thread;
      }
  
      public Thread startThread(int priority) {
          Thread thread = new Thread( this );
          thread.setPriority(priority);
          thread.start();
          return thread;
      }
  
      public void stop() {
          stopped = true;
      }
  
      /**
       * Returns number of runnable object in the queue.
       */
      public int getRunnableCount() {
         return queue.size();
      }
  
  
      // ThreadPool interface
      //-------------------------------------------------------------------------
      
      /** 
       * Dispatch a new task onto this pool 
       * to be invoked asynchronously later
       */
      public void invokeLater(Runnable task) {
          queue.add( task );
      }
  
      // Runnable interface
      //-------------------------------------------------------------------------
      
      /** The method ran by the pool of background threads
       */
      public void run() {
          while ( ! stopped ) {
              Runnable task = (Runnable) queue.remove();
              if ( task != null ) {
                  try {
                      task.run();
                  }
                  catch (Throwable t) {
                      handleException(t);
                  }
              }
          }
      }
  
      // Implementation methods
      //-------------------------------------------------------------------------
      protected void handleException(Throwable t) {
          log.error( "Caught: " + t, t );
      }
  }
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/src/java/org/apache/commons/threadpool/MTQueue.java
  
  Index: MTQueue.java
  ===================================================================
  /*
   * $Header: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/UtilTagLibrary.java,v 1.1 2002/07/16 05:43:32 werken Exp $
   * $Revision: 1.1 $
   * $Date: 2002/07/16 05:43:32 $
   *
   * ====================================================================
   *
   * 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 apache@apache.org.
   *
   * 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: SoapTagLibrary.java,v 1.1 2002/07/16 05:43:32 moatas Exp $
   */
  package org.apache.commons.threadpool;
  
  import java.util.LinkedList;
  
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  
  /** 
   * A multithreaded blocking queue which is very useful for 
   * implementing producer-consumer style threading patterns.
   * <p>
   * Multiple blocking threads can wait for items being added
   * to the queue while other threads add to the queue.
   * <p>
   * Non blocking and timout based modes of access are possible as well.
   *
   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
   * @version $Revision: 1.5 $
   */
  public class MTQueue {
  
      /** The Log to which logging calls will be made. */
      private Log log = LogFactory.getLog(MTQueue.class);
  
  
      private LinkedList list = new LinkedList();
      private long timeout = 10000;
  
      public MTQueue() {
      }
  
      /**
       * Returns the current number of object in the queue
       */
      public synchronized int size() {
          return list.size();
      }
  
      /** 
       * adds a new object to the end of the queue.
       * At least one thread will be notified.
       */
      public synchronized void add(Object object) {
          list.add( object );
          notify();
      }
  
      /** 
       * Removes the first object from the queue, blocking until one is available.
       * Note that this method will never return null and could block forever.
       */
      public synchronized Object remove() {
          while (true) {
              Object answer = removeNoWait();
              if ( answer != null ) {
                  return answer;
              }
              try {
                  wait( timeout );
              }
              catch (InterruptedException e) {
                  log.error( "Thread was interrupted: " + e, e );
              }
          }
      }
  
      /** 
       * Removes the first object from the queue, blocking only up to the given
       * timeout time.
       */
      public synchronized Object remove(long timeout) {
          Object answer = removeNoWait();
          if (answer == null) {
              try {
                  wait( timeout );
              }
              catch (InterruptedException e) {
                  log.error( "Thread was interrupted: " + e, e );
              }
              answer = removeNoWait();
          }
          return answer;
      }
  
      /** 
       * Removes the first object from the queue without blocking.
       * This method will return immediately with an item from the queue or null.
       * 
       * @return the first object removed from the queue or null if the
       * queue is empty
       */
      public synchronized Object removeNoWait() {
          if ( ! list.isEmpty() ) {
              return list.removeFirst();
          }
          return null;
      }
  
  }
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
  
    <properties>
      <title>Commons ThreadPool</title>
      <author email="jstrachan@apache.org">James Strachan</author>
    </properties>
  
    <body>
  
      <section name="What is Commons ThreadPool?">
        <p>
          Commons ThreadPool is a component for working with pools of threads and asynchronously executing
          tasks.
        </p>
        <p>
          Often inside application servers and containers the threading model is managed for you.
          However in some circumstances it can be useful to use your own worker thread pools to dispatch
          asynchronous work into. 
        </p>
        <p>
        	In enterprise class systems typically JMS is used to perform some task asynchronously by another machine.
          However ThreadPools can be a simple and effective mechanism for asynchronous processing within the same process. 
          This can be particularly useful for performing asynchronous processing in
          Servlet engines or Swing applications.
        </p>
      </section>
  
      <section name="How to use a ThreadPool">
  
        <p>
          Once you have a ThreadPool instance you can invoke functionality asynchronously
          on a ThreadPool via the invokeLater() method.
        </p>
  
  <pre>
    // lets start with 5 threads
    ThreadPool threadPool = new DefaultThreadPool(5);    	
  	
    // lets use a specific Runnable
    Runnable someTask = ...;
    threadPool.invokeLater( someTask );
  	
    // lets just wrap up some code in a Runnable
    threadPool.invokeLater(
      new Runnable() {
        public void run() {
          someObject.doSomeSlowThing();
        }
      }		
    );	
  </pre>
  				 
        <p>
          Note that inside the run() method of your Runnable object you must handle Exceptions properly.
          Any unhandled runtime exception will be caught and logged using Commons Logging.
        </p>
      </section>
  
    </body>
  </document>
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/src/test/org/apache/commons/threadpool/TestThreadPool.java
  
  Index: TestThreadPool.java
  ===================================================================
  /*
   * $Header: /home/cvspublic/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/UtilTagLibrary.java,v 1.1 2002/07/16 05:43:32 werken Exp $
   * $Revision: 1.1 $
   * $Date: 2002/07/16 05:43:32 $
   *
   * ====================================================================
   *
   * 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 apache@apache.org.
   *
   * 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: SoapTagLibrary.java,v 1.1 2002/07/16 05:43:32 moatas Exp $
   */
  package org.apache.commons.threadpool;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  import junit.textui.TestRunner;
  
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  
  /**
   * Test harness for the IO package
   *
   * @author <a href="mailto:jason@zenplex.com">Jason van Zyl</a>
   * @version $Revision: 1.3 $
   */
  public class TestThreadPool extends TestCase {
  
      /**
       * A unit test suite for JUnit
       */
      public static Test suite() {
          return new TestSuite(TestThreadPool.class);
      }
  
      /**
       * Constructor for the TestThreadPool object
       *
       * @param testName
       */
      public TestThreadPool(String testName) {
          super(testName);
      }
  
      /**
       * The JUnit setup method
       */
      protected void setUp() throws Exception {
      }
  
      /**
       * A unit test for JUnit
       */
      public void testThreadPool() throws Exception {
      }
  }
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/project.properties
  
  Index: project.properties
  ===================================================================
  # -------------------------------------------------------------------
  # B U I L D  P R O P E R T I E S
  # -------------------------------------------------------------------
  # These properties are used by the maven Torque build, you may override
  # any of these default values by placing property values in
  # your build.properties file.
  # -------------------------------------------------------------------
  
  jarResources.basedir = src/java
  
  maven.junit.fork = true
  
  compile.debug = on
  compile.optimize = off
  compile.deprecation = off
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  target
  *.log
  
  
  1.1                  jakarta-commons-sandbox/threadpool/maven.xml
  
  Index: maven.xml
  ===================================================================
  <project default="java:jar" xmlns:j="jelly:core">
  </project>
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/LICENSE.txt
  
  Index: LICENSE.txt
  ===================================================================
  /*
   * $Header: /home/cvs/jakarta-commons/LICENSE,v 1.4 2002/04/11 13:24:02 dion Exp $
   * $Revision: 1.4 $
   * $Date: 2002/04/11 13:24:02 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 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 apache@apache.org.
   *
   * 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/>.
   *
   */
  
  
  
  1.1                  jakarta-commons-sandbox/threadpool/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0"?>
  <project>
    
    <version>3</version>
    <name>commons-threadpool</name>
    <id>commons-threadpool</id>
    <currentVersion>1.0-dev</currentVersion>
  
    <organization>
      <name>Apache Software Foundation</name>
      <url>http://www.apache.org</url>
      <logo>/images/jakarta-logo-blue.gif</logo>
    </organization>
    <logo>/images/logo.jpg</logo>
  
    <inceptionYear>2002</inceptionYear>
    <package>org.apache.commons.threadpool</package>
  
    <shortDescription>Thread Pool Component</shortDescription>
  
    <!-- Gump integration -->
    <gumpRepositoryId>jakarta</gumpRepositoryId>
  
    <description>
      A simple thread pool component.
    </description>
  
    <url>http://jakarta.apache.org/commons/threadpool/</url>
    <cvsWebUrl>http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/threadpool/</cvsWebUrl>
    <issueTrackingUrl>http://nagoya.apache.org:8080/scarab/servlet/scarab/</issueTrackingUrl>
    <siteAddress>jakarta.apache.org</siteAddress>
    <siteDirectory>/www/jakarta.apache.org/commons/sandbox/threadpool/</siteDirectory>
    <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons-sandbox/threadpool/</distributionDirectory>
  
    <mailingLists>
      <mailingList>
        <name>Commons User List</name>
        <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
        <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
        <archive>http://nagoya.apache.org:8080/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
      </mailingList>
      <mailingList>
        <name>Commons Developer List</name>
        <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
        <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
        <archive>http://nagoya.apache.org:8080/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
      </mailingList>
    </mailingLists>
  
    <developers>
  
      <developer>
        <name>James Strachan</name>
        <id>jstrachan</id>
        <email>jstrachan@apache.org</email>
        <organization>SpiritSoft, Inc.</organization>
      </developer>
  
    </developers>
  
  
    <!-- Need to mark these as compile-time/run-time -->
  
    <dependencies>
  
      <dependency>
        <id>commons-logging</id>
        <version>1.0.1</version>
      </dependency>
      
      <!-- this isn't really a dependency, its just here to get around a Maven bug in test:test... -->
      <dependency>
        <id>xml-apis</id>
        <version>2.0.2</version>
      </dependency>
      <dependency>
        <id>xerces</id>
        <version>2.0.2</version>
      </dependency>
  
  	</dependencies>
  	
  	<build>
  
      <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
      <sourceDirectory>src/java</sourceDirectory>
      <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
      <integrationUnitTestSourceDirectory/>
      <aspectSourceDirectory/>
  
      <!-- Unit test classes -->
      <unitTest>
        <includes>
          <include>**/Test*.java</include>
        </includes>
      </unitTest>
  
      
      <!-- Integration unit test classes -->
      <integrationUnitTestPatterns></integrationUnitTestPatterns>
  
      <!-- J A R  R E S O U R C E S -->
      <!-- Resources that are packaged up inside the JAR file -->
      <resources>
        <includes>
          <include>**/*.properties, **/*.betwixt</include>
        </includes>
      </resources>
    </build>
  </project>
  
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>