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 JJar">
<title>Commons JJar</title>
<body>
<menu name="Commons JJar">
<item name="Overview" href="/index.html" />
<item name="API Documentation" href="/apidocs/index.html"/>
<item name="Downloads" href="/downloads.html"/>
</menu>
&common-menus;
</body>
</project>