archiva-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joak...@apache.org
Subject svn commit: r503520 [1/4] - in /maven/archiva/trunk: archiva-core/ archiva-core/src/main/java/org/apache/maven/archiva/artifact/ archiva-core/src/main/java/org/apache/maven/archiva/repositories/ archiva-core/src/main/java/org/apache/maven/archiva/sched...
Date Mon, 05 Feb 2007 00:31:10 GMT
Author: joakime
Date: Sun Feb  4 16:30:59 2007
New Revision: 503520

URL: http://svn.apache.org/viewvc?view=rev&rev=503520
Log:
Overhauling download link.
* Adding <archiva:downloadArtifact /> taglib.
* Adding ability to download sources, javadoc, and client jars too.
* Adding ActiveManagedRepositories class to aide in anonymous artifact handling.
* Adding test-repository for maven 2.x j2ee artifacts with sources / javadoc / client jars.
* Adding ManagedArtifact class to track this relationship between main artifact and attached artifacts.


Added:
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java   (with props)
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java   (with props)
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java   (with props)
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java   (with props)
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java   (with props)
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java   (with props)
    maven/archiva/trunk/archiva-core/src/test/conf/
    maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java   (with props)
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-client.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-client.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-client.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/1.1/daytrader-ejb-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ejb/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/1.1/daytrader-streamer-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-streamer/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.war   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.war.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/1.1/daytrader-web-1.1.war.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-web/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/1.1/daytrader-wsappclient-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-wsappclient/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/1.1/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/1.1/daytrader-1.1.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/1.1/daytrader-1.1.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/1.1/daytrader-1.1.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.ear   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.ear.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.ear.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/daytrader-ear-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ear/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-client.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-client.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-client.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/daytrader-ejb-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-ejb/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/daytrader-streamer-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-streamer/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.war   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.war.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/daytrader-web-2.0-SNAPSHOT.war.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-web/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-20070201.183230-5.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-javadoc.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-javadoc.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-javadoc.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-sources.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-sources.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT-sources.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.jar   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.jar.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.jar.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/daytrader-wsappclient-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader-wsappclient/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/daytrader-2.0-SNAPSHOT.pom
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/daytrader-2.0-SNAPSHOT.pom.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/daytrader-2.0-SNAPSHOT.pom.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/2.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/maven-metadata.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/maven-metadata.xml.md5
    maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/org/apache/geronimo/daytrader/daytrader/maven-metadata.xml.sha1
    maven/archiva/trunk/archiva-core/src/test/resources/
    maven/archiva/trunk/archiva-core/src/test/resources/org/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml   (with props)
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifactTag.java   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ExpressionTool.java   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/PlexusTagUtil.java   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.bl.gif   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.br.gif   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.ml.gif   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.mr.gif   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.tl.gif   (with props)
    maven/archiva/trunk/archiva-webapp/src/main/webapp/images/download.tr.gif   (with props)
Modified:
    maven/archiva/trunk/archiva-core/pom.xml
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
    maven/archiva/trunk/archiva-core/src/main/resources/META-INF/plexus/components.xml
    maven/archiva/trunk/archiva-indexer/pom.xml
    maven/archiva/trunk/archiva-repository-layer/src/main/java/org/apache/maven/archiva/layer/CachedRepositoryQueryLayer.java
    maven/archiva/trunk/archiva-repository-layer/src/main/java/org/apache/maven/archiva/layer/DefaultRepositoryQueryLayer.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLinkTag.java
    maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/taglib.tld
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp
    maven/archiva/trunk/archiva-webapp/src/main/webapp/css/site.css

Modified: maven/archiva/trunk/archiva-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/pom.xml?view=diff&rev=503520&r1=503519&r2=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/pom.xml (original)
+++ maven/archiva/trunk/archiva-core/pom.xml Sun Feb  4 16:30:59 2007
@@ -59,6 +59,11 @@
       <version>1.0-alpha-4-SNAPSHOT</version>
     </dependency>
     <dependency>
+      <groupId>org.codehaus.plexus.cache</groupId>
+      <artifactId>plexus-cache-ehcache</artifactId>
+      <version>1.0-alpha-1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-taskqueue</artifactId>
       <version>1.0-alpha-6-SNAPSHOT</version>

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,76 @@
+package org.apache.maven.archiva.artifact;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * ManagedArtifact 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ManagedArtifact
+{
+    private String repositoryId;
+
+    private Artifact artifact;
+
+    private String path;
+
+    protected Map attached;
+
+    public ManagedArtifact( String repoId, Artifact artifact, String path )
+    {
+        super();
+        this.repositoryId = repoId;
+        this.artifact = artifact;
+        this.path = path;
+        this.attached = new HashMap();
+    }
+
+    public Artifact getArtifact()
+    {
+        return artifact;
+    }
+
+    public String getPath()
+    {
+        return path;
+    }
+
+    public String getRepositoryId()
+    {
+        return repositoryId;
+    }
+
+    public Map getAttached()
+    {
+        return attached;
+    }
+
+    public void setAttached( Map attached )
+    {
+        this.attached = attached;
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifact.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,81 @@
+package org.apache.maven.archiva.artifact;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * ManagedArtifactTypes - provides place to test an unknown artifact type.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ManagedArtifactTypes
+{
+    public static final int GENERIC = 0;
+
+    public static final int JAVA = 1;
+
+    public static final int EJB = 2;
+
+    private static List javaArtifacts;
+
+    private static List ejbArtifacts;
+
+    static
+    {
+        javaArtifacts = new ArrayList();
+        javaArtifacts.add( "jar" );
+        javaArtifacts.add( "war" );
+        javaArtifacts.add( "sar" );
+        javaArtifacts.add( "rar" );
+        javaArtifacts.add( "ear" );
+
+        ejbArtifacts = new ArrayList();
+        ejbArtifacts.add( "ejb" );
+        ejbArtifacts.add( "ejb-client" );
+    }
+
+    public static int whichType( String type )
+    {
+        if ( StringUtils.isBlank( type ) )
+        {
+            // TODO: is an empty type even possible?
+            return GENERIC;
+        }
+
+        type = type.toLowerCase();
+
+        if ( ejbArtifacts.contains( type ) )
+        {
+            return EJB;
+        }
+
+        if ( javaArtifacts.contains( type ) )
+        {
+            return JAVA;
+        }
+
+        return GENERIC;
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedArtifactTypes.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,49 @@
+package org.apache.maven.archiva.artifact;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * ManagedEjbArtifact - adds the ability to reference the ejb-client jar too. 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ManagedEjbArtifact
+    extends ManagedJavaArtifact
+{
+    public static final String CLIENT = "client";
+
+    public ManagedEjbArtifact( String repoId, Artifact artifact, String path )
+    {
+        super( repoId, artifact, path );
+    }
+
+    public String getClientPath()
+    {
+        return (String) super.attached.get( CLIENT );
+    }
+
+    public void setClientPath( String clientPath )
+    {
+        super.attached.put( CLIENT, clientPath );
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedEjbArtifact.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,62 @@
+package org.apache.maven.archiva.artifact;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * ManagedJavaArtifact - a ManagedArtifact with optional javadoc and source 
+ * reference jars.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ManagedJavaArtifact
+    extends ManagedArtifact
+{
+    public static final String JAVADOC = "javadoc";
+
+    public static final String SOURCES = "sources";
+
+    public ManagedJavaArtifact( String repoId, Artifact artifact, String path )
+    {
+        super( repoId, artifact, path );
+    }
+
+    public String getJavadocPath()
+    {
+        return (String) super.attached.get( JAVADOC );
+    }
+
+    public void setJavadocPath( String javadocPath )
+    {
+        super.attached.put( JAVADOC, javadocPath );
+    }
+
+    public String getSourcesPath()
+    {
+        return (String) super.attached.get( SOURCES );
+    }
+
+    public void setSourcesPath( String sourcesPath )
+    {
+        super.attached.put( SOURCES, sourcesPath );
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/artifact/ManagedJavaArtifact.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,58 @@
+package org.apache.maven.archiva.repositories;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.artifact.ManagedArtifact;
+import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingException;
+
+/**
+ * ActiveManagedRepositories 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface ActiveManagedRepositories
+{
+    public static final String ROLE = ActiveManagedRepositories.class.getName();
+
+    /**
+     * Obtain the ArtifactRepository for the specified Repository ID.
+     * 
+     * @param id the ID of the repository.
+     * @return the ArtifactRepository associated with the provided ID, or null if none found.
+     */
+    public ArtifactRepository getArtifactRepository( String id );
+
+    public RepositoryConfiguration getRepositoryConfiguration( String id );
+
+    public MavenProject findProject( String groupId, String artifactId, String version )
+        throws ProjectBuildingException;
+
+    public ManagedArtifact findArtifact( String groupId, String artifactId, String version )
+        throws ProjectBuildingException;
+
+    public ManagedArtifact findArtifact( String groupId, String artifactId, String version, String type );
+
+    public ManagedArtifact findArtifact( Artifact artifact );
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java (added)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,284 @@
+package org.apache.maven.archiva.repositories;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.artifact.ManagedArtifact;
+import org.apache.maven.archiva.artifact.ManagedArtifactTypes;
+import org.apache.maven.archiva.artifact.ManagedEjbArtifact;
+import org.apache.maven.archiva.artifact.ManagedJavaArtifact;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ConfigurationChangeException;
+import org.apache.maven.archiva.configuration.ConfigurationChangeListener;
+import org.apache.maven.archiva.configuration.ConfigurationStore;
+import org.apache.maven.archiva.configuration.ConfigurationStoreException;
+import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
+import org.apache.maven.archiva.configuration.InvalidConfigurationException;
+import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.codehaus.plexus.cache.Cache;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * DefaultActiveManagedRepositories 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.archiva.repositories.ActiveManagedRepositories"
+ */
+public class DefaultActiveManagedRepositories
+    implements ActiveManagedRepositories, ConfigurationChangeListener, Initializable
+{
+    /**
+     * @plexus.requirement role-hint="artifactCache"
+     */
+    private Cache artifactCache;
+
+    /**
+     * @plexus.requirement
+     */
+    private ArtifactFactory artifactFactory;
+
+    /**
+     * @plexus.requirement
+     */
+    private ConfigurationStore configurationStore;
+
+    /**
+     * @plexus.requirement
+     */
+    private MavenProjectBuilder projectBuilder;
+
+    /**
+     * @plexus.requirement role-hint="projectCache"
+     */
+    private Cache projectCache;
+
+    /**
+     * @plexus.requirement
+     */
+    private ConfiguredRepositoryFactory repositoryFactory;
+
+    private Configuration configuration;
+
+    private ArtifactRepository localRepository;
+
+    private List repositories;
+
+    public Artifact createRelatedArtifact( Artifact artifact, String classifier, String type )
+    {
+        String groupId = artifact.getGroupId();
+        String artifactId = artifact.getArtifactId();
+        String version = artifact.getVersion();
+        String reltype = StringUtils.defaultIfEmpty( type, artifact.getType() );
+        return artifactFactory.createArtifactWithClassifier( groupId, artifactId, version, reltype, classifier );
+    }
+
+    public ManagedArtifact findArtifact( Artifact artifact )
+    {
+        ManagedArtifact managedArtifact = (ManagedArtifact) artifactCache.get( toKey( artifact ) );
+
+        if ( managedArtifact != null )
+        {
+            return managedArtifact;
+        }
+
+        boolean snapshot = artifact.isSnapshot();
+
+        for ( Iterator i = repositories.iterator(); i.hasNext(); )
+        {
+            ArtifactRepository repository = (ArtifactRepository) i.next();
+            if ( snapshot && !repository.getSnapshots().isEnabled() )
+            {
+                // skip repo.
+                continue;
+            }
+
+            String path = repository.pathOf( artifact );
+            File f = new File( repository.getBasedir(), path );
+            if ( f.exists() )
+            {
+                // Found it.
+                managedArtifact = createManagedArtifact( repository, artifact, f );
+
+                artifactCache.put( toKey( artifact ), managedArtifact );
+
+                return managedArtifact;
+            }
+        }
+
+        return null;
+    }
+
+    public ManagedArtifact findArtifact( String groupId, String artifactId, String version )
+        throws ProjectBuildingException
+    {
+        MavenProject project = findProject( groupId, artifactId, version );
+        Model model = project.getModel();
+
+        return findArtifact( model.getGroupId(), model.getArtifactId(), model.getVersion(), model.getPackaging() );
+    }
+
+    public ManagedArtifact findArtifact( String groupId, String artifactId, String version, String type )
+    {
+        Artifact artifact = artifactFactory.createBuildArtifact( groupId, artifactId, version, type );
+        return findArtifact( artifact );
+    }
+
+    public MavenProject findProject( String groupId, String artifactId, String version )
+        throws ProjectBuildingException
+    {
+        MavenProject project = (MavenProject) projectCache.get( toKey( groupId, artifactId, version ) );
+
+        if ( project != null )
+        {
+            return project;
+        }
+
+        Artifact projectArtifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
+
+        project = projectBuilder.buildFromRepository( projectArtifact, repositories, localRepository );
+
+        projectCache.put( toKey( groupId, artifactId, version ), project );
+
+        return project;
+    }
+
+    public ArtifactRepository getArtifactRepository( String id )
+    {
+        RepositoryConfiguration repoConfig = getRepositoryConfiguration( id );
+        if ( repoConfig == null )
+        {
+            return null;
+        }
+
+        return repositoryFactory.createRepository( repoConfig );
+    }
+
+    public RepositoryConfiguration getRepositoryConfiguration( String id )
+    {
+        return this.configuration.getRepositoryById( id );
+    }
+
+    public void initialize()
+        throws InitializationException
+    {
+        Configuration config;
+        try
+        {
+            config = configurationStore.getConfigurationFromStore();
+            configureSelf( config );
+        }
+        catch ( ConfigurationStoreException e )
+        {
+            throw new InitializationException( "Unable to load configuration.", e );
+        }
+    }
+
+    public void notifyOfConfigurationChange( Configuration config )
+        throws InvalidConfigurationException, ConfigurationChangeException
+    {
+        configureSelf( config );
+    }
+
+    private String toKey( Artifact artifact )
+    {
+        if ( artifact == null )
+        {
+            return null;
+        }
+
+        return toKey( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
+    }
+
+    private String toKey( String groupId, String artifactId, String version )
+    {
+        return groupId + ":" + artifactId + ":" + version;
+    }
+
+    private void configureSelf( Configuration config )
+    {
+        this.configuration = config;
+        this.artifactCache.clear();
+        this.projectCache.clear();
+        
+        repositories = repositoryFactory.createRepositories( this.configuration );
+        localRepository = repositoryFactory.createLocalRepository( this.configuration );
+    }
+
+    private ManagedArtifact createManagedArtifact( ArtifactRepository repository, Artifact artifact, File f )
+    {
+        artifact.isSnapshot();
+        String path = repository.pathOf( artifact );
+
+        switch ( ManagedArtifactTypes.whichType( artifact.getType() ) )
+        {
+            case ManagedArtifactTypes.EJB:
+                ManagedEjbArtifact managedEjbArtifact = new ManagedEjbArtifact( repository.getId(), artifact, path );
+
+                managedEjbArtifact.setJavadocPath( pathToRelatedArtifact( repository, artifact, "javadoc", "jar" ) );
+                managedEjbArtifact.setSourcesPath( pathToRelatedArtifact( repository, artifact, "sources", "jar" ) );
+                managedEjbArtifact.setClientPath( pathToRelatedArtifact( repository, artifact, "client", "jar" ) );
+
+                return managedEjbArtifact;
+
+            case ManagedArtifactTypes.JAVA:
+                ManagedJavaArtifact managedJavaArtifact = new ManagedJavaArtifact( repository.getId(), artifact, path );
+
+                managedJavaArtifact.setJavadocPath( pathToRelatedArtifact( repository, artifact, "javadoc", "jar" ) );
+                managedJavaArtifact.setSourcesPath( pathToRelatedArtifact( repository, artifact, "sources", "jar" ) );
+
+                return managedJavaArtifact;
+
+            case ManagedArtifactTypes.GENERIC:
+            default:
+                return new ManagedArtifact( repository.getId(), artifact, path );
+        }
+    }
+
+    private String pathToRelatedArtifact( ArtifactRepository repository, Artifact artifact, String classifier,
+                                          String type )
+    {
+        Artifact relatedArtifact = createRelatedArtifact( artifact, classifier, type );
+
+        relatedArtifact.isSnapshot();
+        String path = repository.pathOf( relatedArtifact );
+
+        File relatedFile = new File( repository.getBasedir(), path );
+        if ( !relatedFile.exists() )
+        {
+            // Return null to set the ManagedArtifact related path to empty.
+            return null;
+        }
+
+        return path;
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java?view=diff&rev=503520&r1=503519&r2=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java (original)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java Sun Feb  4 16:30:59 2007
@@ -241,8 +241,8 @@
                         for ( int j = 0; j < artifacts.size(); j += ARTIFACT_BUFFER_SIZE )
                         {
                             int end = j + ARTIFACT_BUFFER_SIZE;
-                            List currentArtifacts =
-                                artifacts.subList( j, end > artifacts.size() ? artifacts.size() : end );
+                            List currentArtifacts = artifacts.subList( j, end > artifacts.size() ? artifacts.size()
+                                                                                                : end );
 
                             // TODO: proper queueing of this in case it was triggered externally (not harmful to do so at present, but not optimal)
 
@@ -260,10 +260,10 @@
 
                     MetadataFilter metadataFilter = new ReportingMetadataFilter( reporter );
 
-                    MetadataDiscoverer metadataDiscoverer =
-                        (MetadataDiscoverer) metadataDiscoverers.get( layoutProperty );
-                    List metadata =
-                        metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns, metadataFilter );
+                    MetadataDiscoverer metadataDiscoverer = (MetadataDiscoverer) metadataDiscoverers
+                        .get( layoutProperty );
+                    List metadata = metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns,
+                                                                         metadataFilter );
 
                     if ( !metadata.isEmpty() )
                     {
@@ -307,14 +307,18 @@
         {
             if ( projectBuilder != null )
             {
+                getLogger().info( "projectBuilder is type " + projectBuilder.getClass().getName() );
+
                 java.lang.reflect.Field f = projectBuilder.getClass().getDeclaredField( "rawProjectCache" );
                 f.setAccessible( true );
                 Map cache = (Map) f.get( projectBuilder );
+                getLogger().info( "projectBuilder.raw is type " + cache.getClass().getName() );
                 cache.clear();
 
                 f = projectBuilder.getClass().getDeclaredField( "processedProjectCache" );
                 f.setAccessible( true );
                 cache = (Map) f.get( projectBuilder );
+                getLogger().info( "projectBuilder.processed is type " + cache.getClass().getName() );
                 cache.clear();
             }
         }

Modified: maven/archiva/trunk/archiva-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=503520&r1=503519&r2=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/archiva/trunk/archiva-core/src/main/resources/META-INF/plexus/components.xml Sun Feb  4 16:30:59 2007
@@ -54,6 +54,44 @@
         <name>indexer</name>
       </configuration>
     </component>
+    
+    <component>
+      <role>org.codehaus.plexus.cache.Cache</role>
+      <role-hint>artifactCache</role-hint>
+      <implementation>org.codehaus.plexus.cache.ehcache.EhcacheCache</implementation>
+      <description>EhcacheCache</description>
+      <configuration>
+        <disk-expiry-thread-interval-seconds>600</disk-expiry-thread-interval-seconds>
+        <disk-persistent>false</disk-persistent>
+        <disk-store-path>${appserver.base}/.cache/artifacts</disk-store-path>
+        <eternal>false</eternal>
+        <max-elements-in-memory>1000</max-elements-in-memory>
+        <memory-eviction-policy>LRU</memory-eviction-policy>
+        <name>artifact-cache</name>
+        <overflow-to-disk>false</overflow-to-disk>
+        <time-to-idle-seconds>600</time-to-idle-seconds>
+        <time-to-live-seconds>300</time-to-live-seconds>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.codehaus.plexus.cache.Cache</role>
+      <role-hint>projectCache</role-hint>
+      <implementation>org.codehaus.plexus.cache.ehcache.EhcacheCache</implementation>
+      <description>EhcacheCache</description>
+      <configuration>
+        <disk-expiry-thread-interval-seconds>600</disk-expiry-thread-interval-seconds>
+        <disk-persistent>false</disk-persistent>
+        <disk-store-path>${appserver.base}/.cache/projects</disk-store-path>
+        <eternal>false</eternal>
+        <max-elements-in-memory>1000</max-elements-in-memory>
+        <memory-eviction-policy>LRU</memory-eviction-policy>
+        <name>project-cache</name>
+        <overflow-to-disk>false</overflow-to-disk>
+        <time-to-idle-seconds>600</time-to-idle-seconds>
+        <time-to-live-seconds>300</time-to-live-seconds>
+      </configuration>
+    </component>
 
   </components>
 </component-set>

Added: maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml (added)
+++ maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml Sun Feb  4 16:30:59 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<configuration>
+  <repositories>
+    <repository>
+      <urlName>test</urlName>
+      <directory>src/test/maven-2.x-repository</directory>
+      <id>test</id>
+      <name>Test Repository</name>
+    </repository>
+  </repositories>
+  <proxiedRepositories>
+  </proxiedRepositories>
+  <localRepository>target/local-repository</localRepository>
+  <indexPath>target/.index</indexPath>
+</configuration>

Propchange: maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/test/conf/archiva.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java (added)
+++ maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,205 @@
+package org.apache.maven.archiva.repositories;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.artifact.ManagedArtifact;
+import org.apache.maven.archiva.artifact.ManagedEjbArtifact;
+import org.apache.maven.archiva.artifact.ManagedJavaArtifact;
+import org.codehaus.plexus.PlexusTestCase;
+
+/**
+ * DefaultActiveManagedRepositoriesTest 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class DefaultActiveManagedRepositoriesTest
+    extends PlexusTestCase
+{
+    private ActiveManagedRepositories managedRepos;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        managedRepos = (DefaultActiveManagedRepositories) lookup( ActiveManagedRepositories.ROLE );
+    }
+
+    /**
+     * Test a simple java find artifact with extras (sources / javadoc). 
+     */
+    public void testFindArtifactJavaWithExtras()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-wsappclient", "1.1", "jar" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedJavaArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
+
+        assertEquals( "test", javaArtifact.getRepositoryId() );
+
+        String pathPrefix = "geronimo/daytrader-wsappclient/1.1";
+        String pathArtifactVersion = "daytrader-wsappclient-1.1";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
+    }
+    
+    /**
+     * Test a simple java find artifact with no extras.
+     */
+    public void testFindArtifactJavaSimple()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-streamer", "1.1", "jar" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedJavaArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
+
+        assertEquals( "test", javaArtifact.getRepositoryId() );
+
+        String pathPrefix = "geronimo/daytrader-streamer/1.1";
+        String pathArtifactVersion = "daytrader-streamer-1.1";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
+        assertNull( "should have no javadoc jar.", javaArtifact.getJavadocPath() );
+        assertNull( "should have no sources jar.", javaArtifact.getSourcesPath() );
+    }    
+
+    /**
+     * Test a java find of a snapshot artifact that uses a timestamp format. 
+     */
+    public void testFindArtifactJavaSnapshotTimestamp()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-wsappclient",
+                                                              "2.0-20070201.183230-5", "jar" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedJavaArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
+
+        assertEquals( "test", javaArtifact.getRepositoryId() );
+
+        String pathPrefix = "org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT";
+        String pathArtifactVersion = "daytrader-wsappclient-2.0-20070201.183230-5";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
+    }
+
+    /**
+     * Test a java find of a snapshot artifact. 
+     */
+    public void testFindArtifactJavaSnapshot()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-wsappclient",
+                                                              "2.0-SNAPSHOT", "jar" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedJavaArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
+
+        assertEquals( "test", javaArtifact.getRepositoryId() );
+
+        String pathPrefix = "org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT";
+        String pathArtifactVersion = "daytrader-wsappclient-2.0-SNAPSHOT";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
+    }
+
+    /**
+     * Test a ejb find of a snapshot artifact that also has a client jar available. 
+     */
+    public void testFindArtifactEjbSnapshot()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-ejb",
+                                                              "2.0-SNAPSHOT", "ejb" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedEjbArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedEjbArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedEjbArtifact ejbArtifact = (ManagedEjbArtifact) artifact;
+
+        assertEquals( "test", ejbArtifact.getRepositoryId() );
+
+        String pathPrefix = "org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT";
+        String pathArtifactVersion = "daytrader-ejb-2.0-SNAPSHOT";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", ejbArtifact.getPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-client.jar", ejbArtifact.getClientPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", ejbArtifact.getJavadocPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", ejbArtifact.getSourcesPath() );
+    }
+    
+    /**
+     * Test a simple java find artifact with no extras.
+     */
+    public void testFindArtifactWar()
+    {
+        ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-web", "1.1", "war" );
+        assertNotNull( artifact );
+
+        if ( !( artifact instanceof ManagedJavaArtifact ) )
+        {
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
+                + artifact.getClass().getName() + ">." );
+        }
+
+        ManagedJavaArtifact warArtifact = (ManagedJavaArtifact) artifact;
+
+        assertEquals( "test", warArtifact.getRepositoryId() );
+
+        String pathPrefix = "geronimo/daytrader-web/1.1";
+        String pathArtifactVersion = "daytrader-web-1.1";
+
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + ".war", warArtifact.getPath() );
+        assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", warArtifact.getJavadocPath() );
+        assertNull( "should have no sources jar.", warArtifact.getSourcesPath() );
+    }    
+}

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java (added)
+++ maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java Sun Feb  4 16:30:59 2007
@@ -0,0 +1,75 @@
+package org.apache.maven.archiva.scheduler.executors;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ConfigurationStore;
+import org.apache.maven.archiva.configuration.ConfigurationStoreException;
+import org.apache.maven.archiva.scheduler.task.IndexerTask;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
+
+import java.io.File;
+
+/**
+ * IndexerTaskExecutorTest 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class IndexerTaskExecutorTest
+    extends PlexusTestCase
+{
+    private TaskExecutor taskExecutor;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        taskExecutor = (TaskExecutor) lookup( "org.codehaus.plexus.taskqueue.execution.TaskExecutor", "indexer" );
+
+        ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE );
+        Configuration configuration = configurationStore.getConfigurationFromStore();
+
+        File indexPath = new File( configuration.getIndexPath() );
+        if ( indexPath.exists() )
+        {
+            FileUtils.deleteDirectory( indexPath );
+        }
+    }
+
+    public void testIndexer()
+        throws TaskExecutionException
+    {
+        taskExecutor.executeTask( new TestIndexerTask() );
+    }
+
+    class TestIndexerTask
+        extends IndexerTask
+    {
+        public String getJobName()
+        {
+            return "TestIndexer";
+        }
+    }
+}

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Feb  4 16:30:59 2007
@@ -0,0 +1 @@
+.reports

Added: maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear?view=auto&rev=503520
==============================================================================
Binary file - no diff available.

Propchange: maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.md5
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.md5?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.md5 (added)
+++ maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.md5 Sun Feb  4 16:30:59 2007
@@ -0,0 +1 @@
+4d677e8e95fb342512e3d05ea68a501d
\ No newline at end of file

Added: maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.sha1
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.sha1?view=auto&rev=503520
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.sha1 (added)
+++ maven/archiva/trunk/archiva-core/src/test/maven-2.x-repository/geronimo/daytrader-ear/1.1/daytrader-ear-1.1.ear.sha1 Sun Feb  4 16:30:59 2007
@@ -0,0 +1 @@
+58f1e8ae41f12747947c947437e262d9f3bd3ce7
\ No newline at end of file



Mime
View raw message