RAT (Release Audit Tool) results

The following document contains the results of RAT (Release Audit Tool).

*****************************************************
Summary
-------
Notes: 5
Binaries: 5
Archives: 1
Standards: 64

Apache Licensed: 36
Generated Documents: 0

JavaDocs are generated and so license header is optional
Generated files do not required license headers

28 Unknown Licenses

*******************************

Archives (+ indicates readable, $ unreadable): 

 + lib/MinML2.jar
 
*****************************************************
  Files with AL headers will be marked L
  Binary files (which do not require AL headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc will be marked N
 !????? build.properties.sample
 !????? build.xml
  B     docs/jjar.gif
 !????? docs/jjar.html
 !????? examples/ant-task/build.xml
  N     examples/ant-task/README.txt
 !????? examples/ant-task/src/Test.java
 !????? examples/boot-build/boot.sh
 !????? examples/boot-build/build.properties
 !????? examples/boot-build/build.xml
  N     examples/boot-build/README.txt
 !????? examples/boot-build/src/conf/MANIFEST.MF
 !????? examples/boot-build/src/java/org/apache/commons/collections/ArrayEnumeration.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/ArrayStack.java
 !????? examples/boot-build/src/java/org/apache/commons/collections/BinaryHeap.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/CollectionUtils.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/CursorableLinkedList.java
 !????? examples/boot-build/src/java/org/apache/commons/collections/ExtendedProperties.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/FastArrayList.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/FastHashMap.java
  AL    examples/boot-build/src/java/org/apache/commons/collections/FastTreeMap.java
 !????? examples/boot-build/src/java/org/apache/commons/collections/ListUtils.java
 !????? examples/boot-build/src/java/org/apache/commons/collections/package.html
 !????? examples/boot-build/src/java/org/apache/commons/collections/PriorityQueue.java
 !????? examples/boot-build/src/java/org/apache/commons/collections/SynchronizedPriorityQueue.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestAll.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestArrayList.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestArrayStack.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestCollection.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestCollectionUtils.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestCursorableLinkedList.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestExtendedProperties.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastArrayList.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastArrayList1.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastHashMap.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastHashMap1.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastTreeMap.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestFastTreeMap1.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestHashMap.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestList.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestMap.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestObject.java
  AL    examples/boot-build/src/test/org/apache/commons/collections/TestTreeMap.java
 !????? jjar_notes.txt
  A     lib/MinML2.jar
  N     LICENSE.txt
 !????? NOTES
  N     NOTICE.txt
  AL    pom.xml
 !????? project.properties
 !????? project.xml
  N     README.txt
 !????? src/conf/MANIFEST.MF
 !????? src/conf/repository.dtd
 !????? src/conf/repository.xml
  AL    src/java/org/apache/commons/jjar/ClasspathUtil.java
  AL    src/java/org/apache/commons/jjar/DependencyEngine.java
  AL    src/java/org/apache/commons/jjar/JJAR.java
  AL    src/java/org/apache/commons/jjar/JJARPackage.java
  AL    src/java/org/apache/commons/jjar/JJARTask.java
  AL    src/java/org/apache/commons/jjar/Repository.java
  AL    src/java/org/apache/commons/jjar/RepositoryProps.java
  AL    src/java/org/apache/commons/jjar/RepositoryXML.java
  AL    src/java/org/apache/commons/jjar/Transport.java
  AL    src/java/org/apache/commons/jjar/Version.java
 !????? src/script/jjar
  B     src/site/resources/images/jjar-logo-white.png
  B     src/site/resources/images/jjar-logo-white.xcf
  AL    src/site/site.xml
 !????? src/test/org/apache/commons/jjar/TestDependencyEngine.java
 !????? xdocs/downloads.xml
  B     xdocs/images/jjar-logo-white.png
  B     xdocs/images/jjar-logo-white.xcf
 !????? xdocs/index.xml
 !????? xdocs/navigation.xml
 
 *****************************************************
 Printing headers for files without AL header...
 
 
 =======================================================================
 ==build.properties.sample
 =======================================================================
 junit.jar = /home/jvanzyl/js/jars/junit-3.7.jar

 =======================================================================
 ==build.xml
 =======================================================================
 <project name="Jakarta Jar Archive Respository" default="jar" basedir=".">

<!--
        $Id: build.xml 155454 2005-02-26 13:23:34Z dirkv $
-->

<!-- ========== Initialize Properties ===================================== -->


  <property file="build.properties"/>                <!-- Component local   -->
  <property file="../build.properties"/>             <!-- Commons local     -->
  <property file="${user.home}/build.properties"/>   <!-- User local        -->


<!-- ========== External Dependencies ===================================== -->

   <property name="minml2.jar" value="lib/MinML2.jar" />

<!-- ========== Derived Values ============================================ -->


<!-- ========== Component Declarations ==================================== -->


  <!-- The name of this component -->
  <property name="component.name"          value="jjar"/>

  <!-- The title of this component -->
  <property name="component.title"         value="Jakarta Java Archive Repository"/>

  <!-- The current version number of this component -->
  <property name="component.version"       value="0.3-dev"/>

  <!-- The base directory for compilation targets -->
  <property name="build.home"              value="target"/>

  <!-- The base directory for component configuration files -->
  <property name="conf.home"               value="src/conf"/>

  <!-- The base directory for distribution targets -->
  <property name="dist.home"               value="dist"/>

  <!-- The base directory for component sources -->
  <property name="source.home"             value="src"/>

  <!-- The base directory for unit test sources -->
  <property name="test.home"               value="src/test"/>


<!-- ========== Compiler Defaults ========================================= -->

 =======================================================================
 ==docs/jjar.html
 =======================================================================
 <html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Commons - JJAR</title><meta value="Geir Magnusson Jr." name="author"><meta value="geirm@apache.org" name="email"></head><body vlink="#525D76" alink="#525D76" link="#525D76" text="#000000" bgcolor="#ffffff"><table cellspacing="4" width="100%" border="0"><!--PAGE HEADER--><tr><td colspan="2"><!--JAKARTA LOGO--><a href="http://jakarta.apache.org/"><img border="0" alt="The Jakarta Project" align="left" src="http://jakarta.apache.org/images/jakarta-logo.gif"></a><!--PROJECT LOGO--><a href="http://commons.apache.org/"><img border="0" alt="Commons" align="right" src="/images/logo.jpg"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr size="1" noshade=""></td></tr><tr><!--LEFT SIDE NAVIGATION--><td nowrap="true" valign="top" width="20%"><p><strong>Home</strong></p><ul><li><a href="./index.html">Apache Commons</a></li></ul><p><strong>About Us</strong></p><ul><li><a href="./contributors.html">Contributors</a></li><li><a href="./license.html">License</a></li></ul><p><strong>Information</strong></p><ul><li><a href="./index.html">Overview</a></li><li><a href="./commons.html">Commons Proper</a></li><li><a href="./directory.html">Directory</a></li><li><a href="./sandbox.html">Sandbox</a></li></ul><p><strong>Components Repository</strong></p><ul><li><a href="./beanutils.html">BeanUtils</a></li><li><a href="./cactus/index.html">Cactus</a></li><li><a href=".http://jakarta.apache.org/cvsweb/index.cgi/jakarta-commons/collections/">Collections</a></li><li><a href=".http://jakarta.apache.org/cvsweb/index.cgi/jakarta-commons/dbcp/">DBCP</a></li><li><a href=".http://jakarta.apache.org/cvsweb/index.cgi/jakarta-commons/pool/">Pool</a></li></ul><p><strong>Jakarta Community</strong></p><ul><li><a href="./site/getinvolved.html">Get Involved</a></li><li><a href="./site/mail.html">Mailing Lists</a></li><li><a href="./site/cvsindex.html">CVS Repositories</a></li></ul><p><strong>Project Docs</strong></p><ul><li><a href="./charter.html">Charter</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td align="left" valign="top" width="80%"><table width="100%" cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="JJAR%20:%20Jakarta%20JAR%20Archive%20Repository"><strong>JJAR : Jakarta JAR Archive Repository</strong></a></font></td></tr><tr><td><blockquote>

<p>
  <ol>

    <li>
      <a href="jjar.html#introduction">Introduction</a>
    </li>

    <li>
      <a href="jjar.html#The%20Repository">The Repository</a>
    </li>
    
    <li>
      <a href="jjar.html#The%20Toolset">The Toolset</a>
      <ul>
        <li>
          <a href="jjar.html#commandline">Java Commandline Tool</a>
        </li>
        <li>
          <a href="jjar.html#anttool">Jakarta Ant Support</a>
        </li>
      </ul>
    </li>
   
    <li>
      <a href="jjar.html#use%20cases">Use Cases</a>
      <ul>
        <li>
          <a href="jjar.html#listrepo">Listing The Repository</a>
        </li>
        <li>
          <a href="jjar.html#listsingle">Listing the Details of a Single Package</a>
        </li>
       <li>
          <a href="jjar.html#verifyjar">Verifying a Jar</a>
        </li>
       <li>
          <a href="jjar.html#fetchpackage">Fetching a Package</a>
        </li>
       <li>
          <a href="jjar.html#antselfdep">Project Build Self-Dependency with Ant</a>
        </li>
      </ul>
    </li>
  </ol>
</p>

</blockquote></td></tr></table><table width="100%" cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>


 =======================================================================
 ==examples/ant-task/build.xml
 =======================================================================
 <project name="JJARTest" default="help" basedir=".">

<!--                                                            -->
<!--  ant-build :  JJAR examples                                -->
<!--                                                            -->
<!--  These are simple examples of how to use JJAR              -->
<!--  with Jakarta Ant.  For more information, see              -->
<!--  the JJAR project documentation                            -->

<!--
        $Id: build.xml 155454 2005-02-26 13:23:34Z dirkv $
-->

<!-- =============  initialize properties  ===================== -->

  <!-- this is our local repository where jars are stored -->
  <property name="rep.local"   value="repository" />

  <!-- where source is kept for test-classpath            -->
  <property name="src.dir"     value="src" />

<!-- =============  task definitions  ========================== -->

  <taskdef name="jjar" classname="org.apache.commons.jjar.JJARTask">
    <classpath>
      <pathelement location="jjar.jar"/>
    </classpath>
  </taskdef>


<!-- =============  example targets  =========================== -->

  <!-- simple test : get the Velocity package - has a few dependencies -->

  <target name="test" depends="testsimple, testverify">
  </target>

  <target name="testsimple">

     <jjar package="jakarta-velocity" 
           version="1.2-dev"
           localrepository="${rep.local}">
     </jjar>

  </target>

  <target name="testverify">

    <echo>
     Adding jars in repository to classpath to test if they are skipped.

 =======================================================================
 ==examples/ant-task/src/Test.java
 =======================================================================
 /**
 *  Simple test program to demonstrate success in 
 *  altering classpath.  The point of this program
 *  is not to do anything useful (it doesn't)
 *  but be a compile target to test to see if
 *  classpath is correct.
 */
import org.apache.velocity.Template;

public class Test
{
	public static void main( String args[] )
	{
		Template t = null;
	}
}

 =======================================================================
 ==examples/boot-build/boot.sh
 =======================================================================
 #!/bin/bash

java -jar jjar.jar fetch -vi -p ant -j ant.jar -d lib
java -jar jjar.jar fetch -vi -p junit -v 3.2 -j junit-3.2.jar -d lib

${JAVA_HOME}/bin/java -cp ${JAVA_HOME}/lib/tools.jar:lib/ant.jar:lib/jaxp-1.0.jar:lib/jaxp-parser-1.0.jar:. org.apache.tools.ant.Main -buildfile build.xml test


 =======================================================================
 ==examples/boot-build/build.properties
 =======================================================================
 # junit.jar - JUnit 3.2+ Classpath
junit.jar=lib/junit-3.2.jar

 =======================================================================
 ==examples/boot-build/build.xml
 =======================================================================
 <!-- $Id: build.xml 561366 2007-07-31 15:58:29Z rahul $ -->
<project name="commons-collections" default="test" basedir=".">

   <!-- patternset describing files to be copied from the doc directory -->
   <patternset id="patternset-doc"/>

   <!-- patternset describing test classes -->
   <patternset id="patternset-test-classes">
      <include name="**/Test*.class"/>
   </patternset>

   <!-- patternset describing non test classes -->
   <patternset id="patternset-non-test-classes">
      <include name="**/*.class"/>
      <exclude name="**/Test*.class"/>
   </patternset>

   <!-- patternset describing non test source files (*.java, *html, etc.) -->
   <patternset id="patternset-javadocable-sources">
      <include name="**/*"/>
      <exclude name="**/Test*.java"/>
   </patternset>

   <!-- ######################################################### -->

   <target name="init">
      <tstamp/>

      <!-- read properties from the build.properties, if any -->
      <property name="component-propfile" value="${basedir}/build.properties"/>
      <property file="${component-propfile}"/>

      <!-- read properties from the commons build.properties, if any -->
      <property name="commons-propfile" value="${basedir}/../build.properties"/>
      <property file="${commons-propfile}"/>

      <!-- read properties from the ${user.home}/propfile, if any -->
      <property name="user-propfile" value="${user.home}/build.properties"/>
      <property file="${user-propfile}"/>

      <!-- command line classpath, if any -->
      <property name="cp" value=""/>

      <!-- now combine the classpaths -->
      <property name="classpath" value="${cp}:${junit.jar}"/>

      <property name="name" value="commons-collections"/>
      <property name="Name" value="Commons-Collections"/>
      <property name="Name-Long" value="Apache Commons Collections Package"/>


 =======================================================================
 ==examples/boot-build/src/conf/MANIFEST.MF
 =======================================================================
 Extension-Name: @name@
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.0
Implementation-Vendor: Apache Software Foundation
Implementation-Version: @version@


 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/ArrayEnumeration.java
 =======================================================================
 /*
 * Copyright (C) The Apache Software Foundation. All rights reserved.
 *
 * This software is published under the terms of the Apache Software License
 * version 1.1, a copy of which has been included with this distribution in
 * the LICENSE file.
 */
package org.apache.commons.collections;

import java.util.Enumeration;
import java.util.List;
import java.util.NoSuchElementException;

/**
 * Enumeration wrapper for array.
 *
 * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
 */
public final class ArrayEnumeration
    implements Enumeration
{
    protected Object[]       m_elements;
    protected int            m_index;

    public ArrayEnumeration( final List elements )
    {
        m_elements = elements.toArray();
    }

    public ArrayEnumeration( final Object[] elements )
    {
        m_elements = elements;
    }

    public boolean hasMoreElements()
    {
        return ( m_index < m_elements.length );
    }

    public Object nextElement()
    {
        if( !hasMoreElements() )
        {
            throw new NoSuchElementException("No more elements exist");
        }

        return m_elements[ m_index++ ];
    }
}


 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/BinaryHeap.java
 =======================================================================
 /* 
 * Copyright (C) The Apache Software Foundation. All rights reserved. 
 * 
 * This software is published under the terms of the Apache Software License 
 * version 1.1, a copy of which has been included with this distribution in 
 * the LICENSE file. 
 */ 
package org.apache.commons.collections;

import java.util.NoSuchElementException;

/**
 * Iterface for priority queues.
 * This interface does not dictate whether it is min or max heap.
 *
 * @author  <a href="mailto:donaldp@apache.org">Peter Donald</a> 
 * @author  <a href="mailto:ram.chidambaram@telus.com">Ram Chidambaram</a> 
 */
public final class BinaryHeap 
    implements PriorityQueue
{
    protected final static int      DEFAULT_CAPACITY   = 13;

    protected int                   m_size;
    protected Comparable[]          m_elements;
    protected boolean               m_isMinHeap;

    public BinaryHeap()
    {
        this( DEFAULT_CAPACITY, true );
    }

    public BinaryHeap( final int capacity )
    {
        this( capacity, true );
    }

    public BinaryHeap( final boolean isMinHeap )
    {
        this( DEFAULT_CAPACITY, isMinHeap );
    }

    public BinaryHeap( final int capacity, final boolean isMinHeap )
    {
        m_isMinHeap = isMinHeap;

        //+1 as 0 is noop
        m_elements = new Comparable[ capacity + 1 ];
    }


 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/ExtendedProperties.java
 =======================================================================
 package org.apache.commons.collections;

/*
 * Copyright (c) 2001 The Java Apache Project.  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. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the Java Apache
 *    Project for use in the Apache JServ servlet engine project
 *    <http://java.apache.org/>."
 *
 * 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",
 *    "Commons" nor may "Apache" appear in their names without prior 
 *    written permission of the Apache Group.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the Java Apache
 *    Project for use in the Apache JServ servlet engine project
 *    <http://java.apache.org/>."
 *
 * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "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 JAVA APACHE PROJECT 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.

 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/ListUtils.java
 =======================================================================
 /*
 * Copyright (C) The Apache Software Foundation. All rights reserved.
 *
 * This software is published under the terms of the Apache Software License
 * version 1.1, a copy of which has been included with this distribution in
 * the LICENSE file.
 */
package org.apache.commons.collections;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Miscelaneous utilities to manipulate Lists.
 *
 * @author  <a href="mailto:fede@apache.org">Federico Barbieri</a>
 * @author  <a href="mailto:donaldp@apache.org">Peter Donald</a>
 */
public class ListUtils
{
    public static List intersection( final List list1, final List list2 ) 
    {
        final ArrayList result = new ArrayList();
        final Iterator iterator = list2.iterator();

        while( iterator.hasNext() ) 
        {
            final Object o = iterator.next();

            if ( list1.contains( o ) ) 
            {
                result.add( o );
            }
        }

        return result;
    }
    
    public static List subtract( final List list1, final List list2 ) 
    {
        final ArrayList result = new ArrayList( list1 );
        final Iterator iterator = list2.iterator();

        while( iterator.hasNext() ) 
        {
            result.remove( iterator.next() );
        }

        return result;

 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/package.html
 =======================================================================
 <!-- $Id: package.html 155454 2005-02-26 13:23:34Z dirkv $ -->
<html>
   <head>
      <title>Package Documentation for org.apache.commons.collections</title>
   </head>
   <body>
      <p>
         Java Collections Framework extensions.
      </p>
      <p>
         See also the {@link java.util} package.
      </p>
   </body>
</html>

 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/PriorityQueue.java
 =======================================================================
 /* 
 * Copyright (C) The Apache Software Foundation. All rights reserved. 
 * 
 * This software is published under the terms of the Apache Software License 
 * version 1.1, a copy of which has been included with this distribution in 
 * the LICENSE file. 
 */ 
package org.apache.commons.collections;

import java.util.NoSuchElementException;

/**
 * Iterface for priority queues.
 * This interface does not dictate whether it is min or max heap.
 *
 * @author  <a href="mailto:donaldp@apache.org">Peter Donald</a> 
 */
public interface PriorityQueue
{
    /**
     * Clear all elements from queue.
     */
    void clear();

    /**
     * Test if queue is empty.
     *
     * @return true if queue is empty else false.
     */
    boolean isEmpty();

    /**
     * Insert an element into queue.
     *
     * @param element the element to be inserted
     */
    void insert( Comparable element );

    /**
     * Return element on top of heap but don't remove it.
     *
     * @return the element at top of heap
     * @exception NoSuchElementException if isEmpty() == true
     */
    Comparable peek() throws NoSuchElementException;

    /**
     * Return element on top of heap and remove it.
     *
     * @return the element at top of heap

 =======================================================================
 ==examples/boot-build/src/java/org/apache/commons/collections/SynchronizedPriorityQueue.java
 =======================================================================
 /* 
 * Copyright (C) The Apache Software Foundation. All rights reserved. 
 * 
 * This software is published under the terms of the Apache Software License 
 * version 1.1, a copy of which has been included with this distribution in 
 * the LICENSE file. 
 */ 
package org.apache.commons.collections;

import java.util.NoSuchElementException;

/**
 * A thread safe version of the PriorityQueue.
 * Provides synchronized wrapper methods for all the methods 
 * defined in the PriorityQueue interface.
 *
 * @author  <a href="mailto:ram.chidambaram@telus.com">Ram Chidambaram</a> 
 */
public final class SynchronizedPriorityQueue 
    implements PriorityQueue
{
    protected final PriorityQueue   m_priorityQueue;

    public SynchronizedPriorityQueue( final PriorityQueue priorityQueue )
    {
        m_priorityQueue = priorityQueue;
    }

    /**
     * Clear all elements from queue.
     */
    public synchronized void clear()
    {
        m_priorityQueue.clear();
    }

    /**
     * Test if queue is empty.
     *
     * @return true if queue is empty else false.
     */
    public synchronized boolean isEmpty()
    {
        return m_priorityQueue.isEmpty();
    }

    /**
     * Insert an element into queue.
     *
     * @param element the element to be inserted

 =======================================================================
 ==jjar_notes.txt
 =======================================================================
 
JJAR : Jakarta Jar Archive Repository
=====================================

Since about the end of March, I have been thinking about how I wanted to 
make building easy for compoenent consumers, and make maintenance easy
for developers.

Some of the things I thought are important are :

  *  minimal dependencies - shouldn't rely on any other jars to get things
     because one of the design goals is to help new users get started, to 
     help avoid much of the easter-egg hunting that we require to get things
     going.
  
  *  embeddable in applications : as just another API, it allows any app to
     embed the API in apps

  *  ANT support : once the basic API is in place, it's just a wrapper :)

  *  command line tool : to allow maintenance of a developers local repository
     as well as one-off 'go fetch' needs

  * etc

So I have put together a basic repository version.  It doesn't hope for the 
power of a CJAN - the whole CPAN-ish upload server, multiplexed mirrors, etc
can come later.  

What it can do now :

  * command line tool can list the repository for all items or singles packages
  
  * command line tool can fetch packages by request, and supports dependency trees,
    fetching all dependencies connected to the requested package

  * command line tool can verify package and version information
 
  * ant task to do fetching

Todo
----
- make 'modify classpath' flag work
- what do we do about names for jars for ant?  dependencies?
- put -rr flag for 'remote repository'
- add 'synch' verb to synch
- maybe change language from 'local repo' to dest because


The following is my scratchpad.... don't believe anything you read...

 =======================================================================
 ==NOTES
 =======================================================================
 --------------------------------------------------------------------------
U N I V E R S A L  B U I L D  S Y S T E M
--------------------------------------------------------------------------

o get Ant installed

o get JJAR installed

o lib.repo needs to be set in ${user.home}/build.properties

If we could use an installer or JNLP for this stage it
would be dead simple to build any application after these
first three steps were done. 

o define set of standard properties, standard names
  for properties of jar files

o how can projects maintain their own deps.
  use the gump profiles, but allow them to be
  distributed eventually. a project keeping its
  own descriptor in its own SVN repo

o how people can register new properties, so
  new projects can leverage JJAR right off
  the block.

o how to alter ant build files to take advantage
  of this and check to make sure that necessary
  requirements are met

 =======================================================================
 ==project.properties
 =======================================================================
 maven.checkstyle.properties = checkstyle.xml

# uncomment the next line to work in offline mode (no jar download & no linkcheck)
#maven.mode.online=
maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory

maven.javadoc.author=false
maven.javadoc.links=http://java.sun.com/products/jdk/1.4/docs/api

maven.xdoc.jsl=../commons-build/commons-site.jsl
maven.xdoc.date=bottom
maven.xdoc.poweredby.image=maven-feather.png
maven.xdoc.version=${pom.currentVersion}
maven.xdoc.developmentProcessUrl=http://commons.apache.org/charter.html
maven.xdoc.includeProjectDocumentation=yes

maven.compile.debug=on
maven.compile.deprecation=off
maven.compile.optimize=off

maven.jarResources.basedir=src/java
maven.jar.excludes=**/package.html
maven.junit.fork=true
maven.junit.sysproperties=org.xml.sax.driver
org.xml.sax.driver=org.apache.xerces.parsers.SAXParser

clover.excludes=**/Test*.java

 =======================================================================
 ==project.xml
 =======================================================================
 <?xml version="1.0"?>
<project>
  <extend>../commons-build/sandbox-project.xml</extend>
  <name>Commons JJar</name>
  <id>commons-jjar</id>
  <logo>/images/jjar-logo-white.png</logo>
  <url>http://commons.apache.org/jjar/</url>
  <inceptionYear>2001</inceptionYear>
  <shortDescription>Commons JJar</shortDescription>
  <description>Commons JJar</description>

  <currentVersion>0.1-dev</currentVersion>
  <versions>
  </versions>
  <branches>
  </branches>

  <developers>
    <developer>
      <name>Geir Magnusson Jr.</name>
      <id>geirm</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Jason van Zyl</name>
      <id>jvanzyl</id>
      <email></email>
      <organization></organization>
    </developer>
  </developers>
  
  <dependencies>
    <dependency>
      <id>junit</id>
      <version>3.8.1</version>
    </dependency>

    <!-- these two are required by maven -->
    <dependency><id>xml-apis</id><version>2.0.2</version></dependency>
    <dependency><id>xerces</id><version>2.0.2</version></dependency>
    <!-- /these two are required by maven -->
  </dependencies>
</project>

 =======================================================================
 ==src/conf/MANIFEST.MF
 =======================================================================
 Extension-Name: @name@
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.0
Implementation-Vendor: Apache Software Foundation
Implementation-Title: jjar
Implementation-Version: 0.1
Main-class: org.apache.commons.jjar.JJAR

 =======================================================================
 ==src/conf/repository.dtd
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1"?>

<!ELEMENT repository (packagegroup*) >
<!ELEMENT packagegroup ( package* ) >
<!ELEMENT package ( definition |  remotedefinition )  >
<!ELEMENT definition ( info, versionset )  >
<!ELEMENT remotedefinition (#PCDATA) >
<!ELEMENT info ( desc, href ) >
<!ELEMENT desc (#PCDATA) >
<!ELEMENT href (#PCDATA) >
<!ELEMENT versionset ( version* ) >
<!ELEMENT version ( note, jar, dependencies ) >
<!ELEMENT note ( #PCDATA ) >
<!ELEMENT jar ( #PCDATA ) >
<!ELEMENT dependencies ( dep* ) >
<!ELEMENT dep ( #PCDATA ) >

<!ATTLIST packagegroup name  CDATA #REQUIRED >
<!ATTLIST package
        name    CDATA #REQUIRED
        default CDATA #REQUIRED
        latest  CDATA #REQUIRED >
<!ATTLIST version 
        version CDATA #REQUIRED >
<!ATTLIST dep 
        package CDATA #REQUIRED
        version CDATA #REQUIRED >

 =======================================================================
 ==src/conf/repository.xml
 =======================================================================
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE repository SYSTEM "repository.dtd">
<repository>

  <!-- Sun Microsystems packagroup -->

  <packagegroup name="sun">

     <!-- JAXP package -->

     <package name="jaxp" latest="1.0" default="1.0">

       <definition>
        <info>
           <desc>Java API for XML Processing</desc>
           <href> somwhere...</href>
        </info>
        <versionset>
            <version version="1.0">
               <note>production</note>
               <jar>jaxp-1.0.jar</jar>
               <dependencies>
                  <dep version="1.0" package="jaxp-parser"/>
               </dependencies>
             </version>
         </versionset>
       </definition>
      </package>

      <!-- JAXP parser -->

      <package name="jaxp-parser" latest="1.0" default="1.0">
        <definition>
         <info>
           <desc>Java API for XML Processing</desc>
           <href> somwhere...</href>
         </info>
         <versionset>
            <version version="1.0">
               <note/>
               <jar>jaxp-parser-1.0.jar</jar>
               <dependencies>
               </dependencies>
            </version>
         </versionset>
       </definition>
      </package>
 
  </packagegroup>


 =======================================================================
 ==src/script/jjar
 =======================================================================
 #!/bin/sh

#
#  simple little script to make jjar easier
#  on the command line.  Either put jjar.jar
#  into your classpath (easy but bad) or
#  into a well known place (and modify
#  line below...
#  and then put this script into your
#  path
#  then use : jjar list
#  etc
#

java org.apache.commons.jjar.JJAR $@


 =======================================================================
 ==src/test/org/apache/commons/jjar/TestDependencyEngine.java
 =======================================================================
 package org.apache.commons.jjar;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;

/**
 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
 * @version $Id: TestDependencyEngine.java 155454 2005-02-26 13:23:34Z dirkv $
 */
public class TestDependencyEngine 
    extends TestCase
{
    private DependencyEngine d;

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

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

    public static void main(String args[])
    {
        String[] testCaseName = { TestDependencyEngine.class.getName() };
        junit.textui.TestRunner.main(testCaseName);
    }

    public void setUp()
    {
        d = new DependencyEngine();
    }
    
    public void testCookieList()
    {
        String compare = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        
        try
        {
            addAlphabetProjects(d);            
            assertEquals(compare,getList(d.generateCookielist()));
        }
        catch(Exception e)

 =======================================================================
 ==xdocs/downloads.xml
 =======================================================================
 <?xml version="1.0"?>
<document>
   <properties>
      <title>Downloads</title>
      <author email="dev@commons.apache.org">Commons Documentation Team</author>
      <revision>$Id: downloads.xml 561366 2007-07-31 15:58:29Z rahul $</revision>
   </properties>

   <body>
      <section name="Releases">
         <p>There are no releases available.</p>

<!--
         <p>The following releases are available:</p>
         <ul>
           <li>Version 1.1 - 20 October 2003</li>
           <li>Version 1.0 - 12 August 2002</li>
         </ul>
         <br/>
         <p>
            The latest binary release is always available on the 
            <a href="http://jakarta.apache.org/site/binindex.cgi#commons-jjar">
            Jakarta Binary Downloads page</a>,
            its source is available from 
            <a href="http://jakarta.apache.org/site/sourceindex.cgi#commons-jjar">
            Jakarta Source Downloads page</a>.
         </p>
         <p>
            Older releases are retained by the Apache Software Foundation but are 
            moved into a
            <a href="http://archive.apache.org/dist/jakarta/commons/jjar/">
            special archive area</a>.
         </p>
         <p>
           <a href="http://cvs.apache.org/builds/jakarta-commons/nightly/commons-jjar/">
           Nightly source and binary drops</a> are available.
         </p>
-->
         <p>
            Access to the source tree to see the latest and greatest code is possible
            through <a href="cvs-usage.html">anonymous SVN access</a>.
         </p>
      </section>

<!--
      <section name="Release Candidate">
         <p>
            Release candidates for the upcoming 1.1 release can be downloaded 
            <a href="http://cvs.apache.org/~dirkv/builds/">here</a>.
         </p>

 =======================================================================
 ==xdocs/index.xml
 =======================================================================
 <?xml version="1.0"?>

<document>

 <properties>
  <title>JJAR</title>
  <author email="geirm@apache.org">Geir Magnusson Jr.</author>
 </properties>

<body>

<section name="JJAR : Jakarta JAR Archive Repository">

<p>
  <ol>

    <li>
      <a href="jjar.html#introduction">Introduction</a>
    </li>

    <li>
      <a href="jjar.html#The Repository">The Repository</a>
    </li>
    
    <li>
      <a href="jjar.html#The Toolset">The Toolset</a>
      <ul>
        <li>
          <a href="jjar.html#commandline">Java Commandline Tool</a>
        </li>
        <li>
          <a href="jjar.html#anttool">Jakarta Ant Support</a>
        </li>
      </ul>
    </li>
   
    <li>
      <a href="jjar.html#use cases">Use Cases</a>
      <ul>
        <li>
          <a href="jjar.html#listrepo">Listing The Repository</a>
        </li>
        <li>
          <a href="jjar.html#listsingle">Listing the Details of a Single Package</a>
        </li>
       <li>
          <a href="jjar.html#verifyjar">Verifying a Jar</a>
        </li>
       <li>
          <a href="jjar.html#fetchpackage">Fetching a Package</a>

 =======================================================================
 ==xdocs/navigation.xml
 =======================================================================
 <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE org.apache.commons.menus SYSTEM '../../commons-build/menus/menus.dtd'>
<project name="Commons&#xA0;JJar">
    <title>Commons&#xA0;JJar</title>
    <body>
        <menu name="Commons&#xA0;JJar">
            <item name="Overview"                      href="/index.html" />
            <item name="API&#xA0;Documentation"        href="/apidocs/index.html"/>
            <item name="Downloads"                     href="/downloads.html"/>
        </menu>
        &common-menus;
    </body>
</project>