aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archiva-cli/pom.xml10
-rw-r--r--archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java13
-rw-r--r--archiva-docs/pom.xml2
-rw-r--r--archiva-jetty/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-artifact-converter/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-checksum/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-common/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-configuration/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo1
-rw-r--r--archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/ConsumerWantsFilePredicate.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java)2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java11
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java6
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java180
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java179
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java6
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java96
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java114
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml65
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml87
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml41
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java153
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java26
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml5
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java148
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java42
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/stubs/ArchivaDAOStub.java74
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml52
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java197
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-consumers/pom.xml28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/pom.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java18
-rw-r--r--archiva-modules/archiva-base/archiva-dependency-graph/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-indexer/pom.xml8
-rw-r--r--archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/util/SearchUtil.java2
-rwxr-xr-xarchiva-modules/archiva-base/archiva-model/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-policies/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/pom.xml8
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java30
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml3
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java22
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/pom.xml54
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java)11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java)124
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanStatistics.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java)113
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java)15
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerException.java51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java)13
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java)2
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerBeginScanClosure.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java)2
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/main/resources/META-INF/spring-context.xml (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/spring-context.xml)8
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/InvalidScanConsumer.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java)8
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/KnownScanConsumer.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java)12
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersStub.java42
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java)70
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java)62
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/SampleKnownConsumer.java (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java)8
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/CVS/Root1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/KEYS1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid-1.0.jar (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1/invalid-10
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/maven-metadata.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom300
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom268
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom268
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom268
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml12
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom379
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom69
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom42
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom68
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom98
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom109
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom38
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom41
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom79
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom50
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom (renamed from archiva-modules/archiva-scheduled/pom.xml)73
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom65
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom81
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom169
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom566
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom62
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom145
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom60
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom176
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom103
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom45
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom334
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom79
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom505
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml28
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom556
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom304
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml35
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jarbin0 -> 38527 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jarbin0 -> 2819 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jarbin0 -> 6480 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom56
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jarbin0 -> 38215 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jarbin0 -> 2822 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jarbin0 -> 6478 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom56
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml15
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom143
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml24
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml24
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom39
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom77
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom16
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom119
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom75
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom16
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project/2.4.4/test-project-2.4.4.pom161
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/CVS/Root1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/KEYS0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/no-extension0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom52
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom15
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar)bin45568 -> 45568 bytes
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom)0
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.xml (renamed from archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml)24
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/scanner-archiva.xml109
-rw-r--r--archiva-modules/archiva-base/archiva-transaction/pom.xml2
-rw-r--r--archiva-modules/archiva-base/archiva-xml-tools/pom.xml2
-rw-r--r--archiva-modules/archiva-base/pom.xml28
-rwxr-xr-xarchiva-modules/archiva-database/pom.xml2
-rw-r--r--archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java78
-rw-r--r--archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java88
-rw-r--r--archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java31
-rw-r--r--archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java50
-rw-r--r--archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java12
-rw-r--r--archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java73
-rw-r--r--archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java24
-rw-r--r--archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java98
-rw-r--r--archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml6
-rwxr-xr-xarchiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml2
-rwxr-xr-xarchiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml2
-rwxr-xr-xarchiva-modules/archiva-reporting/archiva-project-reports/pom.xml2
-rwxr-xr-xarchiva-modules/archiva-reporting/archiva-report-manager/pom.xml2
-rw-r--r--archiva-modules/archiva-reporting/pom.xml2
-rw-r--r--archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java94
-rw-r--r--archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java100
-rw-r--r--archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml144
-rw-r--r--archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java99
-rw-r--r--archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java92
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml18
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/ArchivaTaskScheduler.java44
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/pom.xml71
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutor.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java)13
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseArchivaTaskScheduler.java209
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTask.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java)2
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTaskJob.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java)5
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/resources/META-INF/plexus/components.xml63
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.java (renamed from archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java)4
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/TestDatabaseUnprocessedConsumer.java (renamed from archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java)2
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/maven-metadata.xml26
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml30
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war1
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war1
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml23
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 (renamed from archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml24
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/archiva-test.xml (renamed from archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml)0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.xml (renamed from archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml)10
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/pom.xml62
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutor.java)4
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArtifactIndexingTask.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArtifactIndexingTask.java)29
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/IndexingArchivaTaskScheduler.java51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/resources/META-INF/plexus/components.xml63
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java (renamed from archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutorTest.java)27
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/pom.xml80
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutor.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java)119
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryArchivaTaskScheduler.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java)191
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTask.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java)2
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTaskJob.java (renamed from archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java)11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/resources/META-INF/plexus/components.xml63
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java (renamed from archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java)8
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/maven-metadata.xml26
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar0
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml30
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war1
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war1
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml23
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom28
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md51
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha11
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml25
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml24
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/archiva-test.xml119
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.xml (renamed from archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml)4
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar (renamed from archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar)bin4460 -> 4460 bytes
-rw-r--r--archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml (renamed from archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml)0
-rw-r--r--archiva-modules/archiva-scheduler/pom.xml37
-rw-r--r--archiva-modules/archiva-web/archiva-applet/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-rss/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-security/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-webapp-test/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/pom.xml35
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java19
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java138
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java20
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java31
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java60
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java7
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java43
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp56
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataResolver.java73
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.java36
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java254
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java5
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/database/DatabaseActionTest.java53
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryProblemDAOStub.java55
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml54
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml6
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/pom.xml8
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java21
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java9
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java2
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java25
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml7
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml7
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml4
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/pom.xml2
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml12
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java173
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java93
-rw-r--r--archiva-modules/archiva-web/archiva-xmlrpc/pom.xml2
-rw-r--r--archiva-modules/archiva-web/pom.xml2
-rw-r--r--archiva-modules/metadata/content-model.txt58
-rw-r--r--archiva-modules/metadata/metadata-model/pom.xml28
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java78
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/CiManagement.java47
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/IssueManagement.java47
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/License.java47
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Organization.java47
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java47
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionFacet.java25
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java161
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/RepositoryMetadata.java (renamed from archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseCleanupConsumer.java)13
-rw-r--r--archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Scm.java59
-rw-r--r--archiva-modules/metadata/metadata-repository-api/pom.xml34
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java69
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java42
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataResolver.java34
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryPathTranslator.java29
-rw-r--r--archiva-modules/metadata/pom.xml33
-rw-r--r--archiva-modules/plugins/maven2-repository/pom.xml78
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/DummyLifecycleBindingsInjector.java39
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java141
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryPathTranslator.java57
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectFacet.java81
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectParent.java59
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadata.java200
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReader.java90
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/RepositoryModelResolver.java66
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java64
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java71
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReaderTest.java73
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/4/apache-4.pom113
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/apache-5-20080801.151215-1.pom113
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/maven-metadata.xml14
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-base/1.2.1/archiva-base-1.2.1.pom46
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-common/1.2.1/archiva-common-1.2.1.pom78
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-modules/1.2.1/archiva-modules-1.2.1.pom207
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-parent/3/archiva-parent-3.pom456
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva/1.2.1/archiva-1.2.1.pom1199
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/maven/shared/maven-downloader/maven-metadata.xml34
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml (renamed from archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/archiva/consumers/lucene/LuceneConsumersTest.xml)5
-rw-r--r--archiva-modules/plugins/metadata-repository-file/pom.xml40
-rw-r--r--archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java195
-rw-r--r--archiva-modules/plugins/pom.xml33
-rw-r--r--archiva-modules/pom.xml11
-rw-r--r--pom.xml107
446 files changed, 16999 insertions, 3271 deletions
diff --git a/archiva-cli/pom.xml b/archiva-cli/pom.xml
index 4039c4575..ba13343ea 100644
--- a/archiva-cli/pom.xml
+++ b/archiva-cli/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-cli</artifactId>
@@ -35,7 +35,13 @@
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-dependency-tree-consumer</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-metadata-consumer</artifactId>
+ <version>1.3-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
<dependency>
diff --git a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java b/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java
index 43cb75350..0c91aaf2b 100644
--- a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java
+++ b/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java
@@ -19,9 +19,6 @@ package org.apache.maven.archiva.cli;
* under the License.
*/
-import com.sampullara.cli.Args;
-import com.sampullara.cli.Argument;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -34,6 +31,11 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
+import com.sampullara.cli.Args;
+import com.sampullara.cli.Argument;
+import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
+import org.apache.archiva.repository.scanner.RepositoryScanner;
+import org.apache.archiva.repository.scanner.RepositoryScannerException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
@@ -43,9 +45,6 @@ import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
import org.apache.maven.archiva.converter.RepositoryConversionException;
import org.apache.maven.archiva.converter.legacy.LegacyRepositoryConverter;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanStatistics;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanner;
import org.apache.maven.artifact.manager.WagonManager;
import org.codehaus.plexus.spring.PlexusClassPathXmlApplicationContext;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
@@ -172,7 +171,7 @@ public class ArchivaCli
System.out.println( "\n" + stats.toDump( repo ) );
}
- catch ( RepositoryException e )
+ catch ( RepositoryScannerException e )
{
e.printStackTrace( System.err );
}
diff --git a/archiva-docs/pom.xml b/archiva-docs/pom.xml
index 060edc504..028a011aa 100644
--- a/archiva-docs/pom.xml
+++ b/archiva-docs/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-docs</artifactId>
diff --git a/archiva-jetty/pom.xml b/archiva-jetty/pom.xml
index 692937af0..13c35933e 100644
--- a/archiva-jetty/pom.xml
+++ b/archiva-jetty/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-jetty</artifactId>
<packaging>pom</packaging>
diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml b/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml
index a544ffa9b..7e5ee9023 100644
--- a/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml
+++ b/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-artifact-converter</artifactId>
<name>Archiva Artifact Converter</name>
diff --git a/archiva-modules/archiva-base/archiva-checksum/pom.xml b/archiva-modules/archiva-base/archiva-checksum/pom.xml
index 7532df03a..bf525a970 100644
--- a/archiva-modules/archiva-base/archiva-checksum/pom.xml
+++ b/archiva-modules/archiva-base/archiva-checksum/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-checksum</artifactId>
<name>Archiva Checksum</name>
diff --git a/archiva-modules/archiva-base/archiva-common/pom.xml b/archiva-modules/archiva-base/archiva-common/pom.xml
index 233964823..91bdca84e 100644
--- a/archiva-modules/archiva-base/archiva-common/pom.xml
+++ b/archiva-modules/archiva-base/archiva-common/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-common</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-configuration/pom.xml b/archiva-modules/archiva-base/archiva-configuration/pom.xml
index cf1d13cac..af8d09c00 100644
--- a/archiva-modules/archiva-base/archiva-configuration/pom.xml
+++ b/archiva-modules/archiva-base/archiva-configuration/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-configuration</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
index 0187601c2..717721c91 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
@@ -1039,6 +1039,7 @@
<name>cleanupConsumers</name>
<version>1.0.0+</version>
<required>true</required>
+ <deprecated>true</deprecated>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java b/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
index d874420fb..c28aebb73 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
+++ b/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
@@ -582,7 +582,7 @@ public class ArchivaConfigurationTest
archivaConfiguration.save( configuration );
// Release existing
-// FIXME spring equivalent ? release( archivaConfiguration );
+ release( archivaConfiguration );
// Reload.
archivaConfiguration =
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml
index 9c536fcdd..a3fb436eb 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-consumer-api</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/ConsumerWantsFilePredicate.java
index af3499874..112cc4709 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/ConsumerWantsFilePredicate.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner.functors;
+package org.apache.maven.archiva.consumers.functors;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
index 27be9d08e..369262da9 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-core-consumers</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
index c0c4e525f..5e23a2f51 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
@@ -24,14 +24,13 @@ import java.io.FilenameFilter;
import java.util.List;
import java.util.Set;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.model.ArtifactReference;
-import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.events.RepositoryListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Base class for all repository purge tasks.
@@ -46,9 +45,9 @@ public abstract class AbstractRepositoryPurge
protected final List<RepositoryListener> listeners;
- private Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" );
+ private Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" );
- private static final char DELIM = ' ';
+ private static final char DELIM = ' ';
public AbstractRepositoryPurge( ManagedRepositoryContent repository, List<RepositoryListener> listeners )
{
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java
index 59cffadc0..023893820 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java
@@ -19,16 +19,16 @@ package org.apache.maven.archiva.consumers.core;
* under the License.
*/
+import java.io.File;
+
import org.apache.maven.archiva.common.utils.BaseFile;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileType;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
+import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-import java.io.File;
-
public abstract class AbstractArtifactConsumerTest
extends PlexusInSpringTestCase
{
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
index c472c7459..be2a3fac0 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
@@ -29,7 +29,7 @@ import org.apache.maven.archiva.configuration.FileType;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
+import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate;
import org.custommonkey.xmlunit.XMLAssert;
/**
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml
index 2fd7a84b7..99378af66 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-database-consumers</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java
deleted file mode 100644
index c4539c6f3..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package org.apache.maven.archiva.consumers.database;
-
-/*
- * 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.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.database.Constraint;
-import org.apache.maven.archiva.database.RepositoryProblemDAO;
-import org.apache.maven.archiva.database.constraints.RepositoryProblemByArtifactConstraint;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.ArchivaDatabaseException;
-import org.apache.maven.archiva.model.RepositoryProblem;
-import org.apache.maven.archiva.repository.ManagedRepositoryContent;
-import org.apache.maven.archiva.repository.RepositoryContentFactory;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.repository.audit.AuditEvent;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-import java.io.File;
-
-/**
- * Consumer for cleaning up the database of artifacts that are no longer existing in the repository.
- *
- * <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @version $Id$
- *
- * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer"
- * role-hint="not-present-remove-db-artifact"
- * instantiation-strategy="per-lookup"
- */
-public class DatabaseCleanupRemoveArtifactConsumer
- extends AbstractMonitoredConsumer
- implements DatabaseCleanupConsumer
-{
- /**
- * @plexus.configuration default-value="not-present-remove-db-artifact"
- */
- private String id;
-
- /**
- * @plexus.configuration default-value="Remove artifact from database if not present on filesystem."
- */
- private String description;
-
- /**
- * @plexus.requirement role-hint="jdo"
- */
- private ArtifactDAO artifactDAO;
-
- /**
- * @plexus.requirement role-hint="jdo"
- */
- private RepositoryProblemDAO repositoryProblemDAO;
-
- /**
- * @plexus.requirement
- */
- private RepositoryContentFactory repositoryFactory;
-
- private Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" );
-
- private static final char DELIM = ' ';
-
- public void beginScan()
- {
- // TODO Auto-generated method stub
-
- }
-
- public void completeScan()
- {
- // TODO Auto-generated method stub
- }
-
- public List<String> getIncludedTypes()
- {
- return null;
- }
-
- public void processArchivaArtifact( ArchivaArtifact artifact )
- throws ConsumerException
- {
- try
- {
- ManagedRepositoryContent repositoryContent =
- repositoryFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
-
- File file = new File( repositoryContent.getRepoRoot(), repositoryContent.toPath( artifact ) );
-
- if( !file.exists() )
- {
- artifactDAO.deleteArtifact( artifact );
-
- triggerAuditEvent( repositoryContent.getRepository().getId(), artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getVersion(), AuditEvent.REMOVE_SCANNED );
-
- // Remove all repository problems related to this artifact
- Constraint artifactConstraint = new RepositoryProblemByArtifactConstraint( artifact );
- List<RepositoryProblem> repositoryProblems =
- repositoryProblemDAO.queryRepositoryProblems( artifactConstraint );
-
- if ( repositoryProblems != null )
- {
- for ( RepositoryProblem repositoryProblem : repositoryProblems )
- {
- repositoryProblemDAO.deleteRepositoryProblem( repositoryProblem );
- }
- }
- }
- }
- catch ( RepositoryException re )
- {
- throw new ConsumerException( "Can't run database cleanup remove artifact consumer: " +
- re.getMessage() );
- }
- catch ( ArchivaDatabaseException e )
- {
- throw new ConsumerException( e.getMessage() );
- }
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public String getId()
- {
- return id;
- }
-
- public boolean isPermanent()
- {
- return false;
- }
-
- public void setArtifactDAO( ArtifactDAO artifactDAO)
- {
- this.artifactDAO = artifactDAO;
- }
-
- public void setRepositoryProblemDAO( RepositoryProblemDAO repositoryProblemDAO )
- {
- this.repositoryProblemDAO = repositoryProblemDAO;
- }
-
- public void setRepositoryFactory( RepositoryContentFactory repositoryFactory )
- {
- this.repositoryFactory = repositoryFactory;
- }
-
- private void triggerAuditEvent( String repoId, String resource, String action )
- {
- String msg = repoId + DELIM + "<db-scan>" + DELIM + "<system>" + DELIM + '\"' + resource + '\"' +
- DELIM + '\"' + action + '\"';
-
- logger.info( msg );
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java
deleted file mode 100644
index 52c799593..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.apache.maven.archiva.consumers.database;
-
-/*
- * 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.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaProjectModel;
-import org.apache.maven.archiva.repository.ManagedRepositoryContent;
-import org.apache.maven.archiva.repository.RepositoryContentFactory;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.database.ProjectModelDAO;
-import org.apache.maven.archiva.database.ArchivaDatabaseException;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
-import org.codehaus.plexus.cache.Cache;
-
-import java.util.List;
-import java.io.File;
-
-/**
- * Consumer for removing or deleting from the database the project models fo artifacts that have been
- * deleted/removed from the repository.
- *
- * <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @version $Id$
- *
- * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer"
- * role-hint="not-present-remove-db-project"
- * instantiation-strategy="per-lookup"
- */
-public class DatabaseCleanupRemoveProjectConsumer
- extends AbstractMonitoredConsumer
- implements DatabaseCleanupConsumer
-{
- /**
- * @plexus.configuration default-value="not-present-remove-db-project"
- */
- private String id;
-
- /**
- * @plexus.configuration default-value="Remove project from database if not present on filesystem."
- */
- private String description;
-
- /**
- * @plexus.requirement role-hint="jdo"
- */
- private ProjectModelDAO projectModelDAO;
-
- /**
- * @plexus.requirement
- */
- private RepositoryContentFactory repositoryFactory;
-
- /**
- * @plexus.requirement role-hint="effective-project-cache"
- */
- private Cache effectiveProjectCache;
-
- public void beginScan()
- {
- // TODO Auto-generated method stub
- }
-
- public void completeScan()
- {
- // TODO Auto-generated method stub
- }
-
- public List<String> getIncludedTypes()
- {
- return null;
- }
-
- public void processArchivaArtifact( ArchivaArtifact artifact )
- throws ConsumerException
- {
- if ( !StringUtils.equals( "pom", artifact.getType() ) )
- {
- // Not a pom. Skip it.
- return;
- }
-
- try
- {
- ManagedRepositoryContent repositoryContent =
- repositoryFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
-
- File file = new File( repositoryContent.getRepoRoot(), repositoryContent.toPath( artifact ) );
-
- if ( !file.exists() )
- {
- ArchivaProjectModel projectModel =
- projectModelDAO.getProjectModel( artifact.getGroupId(), artifact.getArtifactId(),
- artifact.getVersion() );
-
- projectModelDAO.deleteProjectModel( projectModel );
-
- // Force removal of project model from effective cache
- String projectKey = toProjectKey( projectModel );
- synchronized ( effectiveProjectCache )
- {
- if ( effectiveProjectCache.hasKey( projectKey ) )
- {
- effectiveProjectCache.remove( projectKey );
- }
- }
- }
- }
- catch ( RepositoryException re )
- {
- throw new ConsumerException( "Can't run database cleanup remove artifact consumer: " + re.getMessage() );
- }
- catch ( ArchivaDatabaseException e )
- {
- throw new ConsumerException( e.getMessage() );
- }
-
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public String getId()
- {
- return id;
- }
-
- public boolean isPermanent()
- {
- return false;
- }
-
- public void setProjectModelDAO( ProjectModelDAO projectModelDAO )
- {
- this.projectModelDAO = projectModelDAO;
- }
-
- public void setRepositoryFactory( RepositoryContentFactory repositoryFactory )
- {
- this.repositoryFactory = repositoryFactory;
- }
-
- public void setEffectiveProjectCache( Cache effectiveProjectCache )
- {
- this.effectiveProjectCache = effectiveProjectCache;
- }
-
- private String toProjectKey( ArchivaProjectModel project )
- {
- StringBuilder key = new StringBuilder();
-
- key.append( project.getGroupId() ).append( ":" );
- key.append( project.getArtifactId() ).append( ":" );
- key.append( project.getVersion() );
-
- return key.toString();
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java
index 19b07ac1e..5bff8d355 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java
@@ -19,16 +19,16 @@ package org.apache.maven.archiva.consumers.database;
* under the License.
*/
+import java.io.File;
+
import org.apache.maven.archiva.common.utils.BaseFile;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileType;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
+import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-import java.io.File;
-
public class ArtifactUpdateDatabaseConsumerTest
extends PlexusInSpringTestCase
{
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java
deleted file mode 100644
index e153e3f97..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.maven.archiva.consumers.database;
-
-/*
- * 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.easymock.MockControl;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.RepositoryProblemDAO;
-
-/**
- * Test for DatabaseCleanupRemoveArtifactConsumerTest
- *
- */
-public class DatabaseCleanupRemoveArtifactConsumerTest
- extends AbstractDatabaseCleanupTest
-{
- private MockControl artifactDAOControl;
-
- private ArtifactDAO artifactDAOMock;
-
- private MockControl repositoryProblemDAOControl;
-
- private RepositoryProblemDAO repositoryProblemDAOMock;
-
- private DatabaseCleanupRemoveArtifactConsumer dbCleanupRemoveArtifactConsumer;
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- dbCleanupRemoveArtifactConsumer = new DatabaseCleanupRemoveArtifactConsumer();
-
- artifactDAOControl = MockControl.createControl( ArtifactDAO.class );
-
- artifactDAOMock = (ArtifactDAO) artifactDAOControl.getMock();
-
- repositoryProblemDAOControl = MockControl.createControl( RepositoryProblemDAO.class );
-
- repositoryProblemDAOMock = (RepositoryProblemDAO) repositoryProblemDAOControl.getMock();
-
- dbCleanupRemoveArtifactConsumer.setArtifactDAO( artifactDAOMock );
-
- dbCleanupRemoveArtifactConsumer.setRepositoryProblemDAO( repositoryProblemDAOMock );
-
- dbCleanupRemoveArtifactConsumer.setRepositoryFactory( repositoryFactory );
- }
-
- public void testIfArtifactWasNotDeleted()
- throws Exception
- {
- ArchivaArtifact artifact = createArtifact( TEST_GROUP_ID, "do-not-cleanup-artifact-test", TEST_VERSION, "jar" );
-
- artifactDAOControl.replay();
-
- repositoryProblemDAOControl.replay();
-
- dbCleanupRemoveArtifactConsumer.processArchivaArtifact( artifact );
-
- artifactDAOControl.verify();
-
- repositoryProblemDAOControl.verify();
- }
-
- public void testIfArtifactWasDeleted()
- throws Exception
- {
- ArchivaArtifact artifact = createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, "jar" );
-
- artifactDAOMock.deleteArtifact( artifact );
-
- artifactDAOControl.replay();
-
- dbCleanupRemoveArtifactConsumer.processArchivaArtifact( artifact );
-
- artifactDAOControl.verify();
- }
-
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java
deleted file mode 100644
index e8fe2fff3..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.maven.archiva.consumers.database;
-
-/*
- * 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.codehaus.plexus.cache.Cache;
-import org.easymock.MockControl;
-import org.apache.maven.archiva.database.ProjectModelDAO;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaProjectModel;
-
-/**
- * Test for DatabaseCleanupRemoveProjectConsumer
- *
- */
-public class DatabaseCleanupRemoveProjectConsumerTest
- extends AbstractDatabaseCleanupTest
-{
- private MockControl projectModelDAOControl;
-
- private ProjectModelDAO projectModelDAOMock;
-
- private DatabaseCleanupRemoveProjectConsumer dbCleanupRemoveProjectConsumer;
-
- private Cache effectiveProjectCache;
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- dbCleanupRemoveProjectConsumer = new DatabaseCleanupRemoveProjectConsumer();
-
- projectModelDAOControl = MockControl.createControl( ProjectModelDAO.class );
-
- projectModelDAOMock = (ProjectModelDAO) projectModelDAOControl.getMock();
-
- effectiveProjectCache = (Cache) lookup( Cache.class, "effective-project-cache" );
-
- dbCleanupRemoveProjectConsumer.setProjectModelDAO( projectModelDAOMock );
-
- dbCleanupRemoveProjectConsumer.setRepositoryFactory( repositoryFactory );
-
- dbCleanupRemoveProjectConsumer.setEffectiveProjectCache( effectiveProjectCache );
- }
-
- public void testIfArtifactWasNotDeleted()
- throws Exception
- {
- ArchivaArtifact artifact = createArtifact( TEST_GROUP_ID, "do-not-cleanup-artifact-test", TEST_VERSION, "pom" );
-
- projectModelDAOControl.replay();
-
- dbCleanupRemoveProjectConsumer.processArchivaArtifact( artifact );
-
- projectModelDAOControl.verify();
- }
-
- public void testIfArtifactWasDeleted()
- throws Exception
- {
- ArchivaArtifact artifact = createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, "pom" );
-
- ArchivaProjectModel projectModel = createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION );
-
- //this should return a value
- projectModelDAOControl.expectAndReturn(
- projectModelDAOMock.getProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ),
- (ArchivaProjectModel) projectModel );
-
- projectModelDAOMock.deleteProjectModel( projectModel );
-
- projectModelDAOControl.replay();
-
- dbCleanupRemoveProjectConsumer.processArchivaArtifact( artifact );
-
- projectModelDAOControl.verify();
- }
-
- public void testIfArtifactWasNotAPom()
- throws Exception
- {
- ArchivaArtifact artifact = createArtifact( TEST_GROUP_ID, "do-not-cleanup-artifact-test", TEST_VERSION, "jar" );
-
- projectModelDAOControl.replay();
-
- dbCleanupRemoveProjectConsumer.processArchivaArtifact( artifact );
-
- projectModelDAOControl.verify();
- }
-
- public void tearDown()
- throws Exception
- {
- super.tearDown();
- }
-
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml
deleted file mode 100644
index 2c0dd53e1..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?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.
- -->
-
-<component-set>
- <components>
- <component>
- <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
- <role-hint>database-cleanup</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.registry.Registry</role>
- <role-hint>database-cleanup</role-hint>
- </requirement>
- <requirement>
- <role>org.apache.maven.archiva.policies.PreDownloadPolicy</role>
- <field-name>prePolicies</field-name>
- </requirement>
- <requirement>
- <role>org.apache.maven.archiva.policies.PostDownloadPolicy</role>
- <field-name>postPolicies</field-name>
- </requirement>
- </requirements>
- </component>
- <component>
- <role>org.codehaus.plexus.registry.Registry</role>
- <role-hint>database-cleanup</role-hint>
- <implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
- <configuration>
- <properties>
- <xml fileName="${basedir}/target/test/repository-manager.xml" config-optional="true" config-forceCreate="true"
- config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/>
- </properties>
- </configuration>
- </component>
-
- <component>
- <role>org.apache.maven.archiva.repository.RepositoryContentFactory</role>
- <implementation>org.apache.maven.archiva.repository.RepositoryContentFactory</implementation>
- <requirements>
- <requirement>
- <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
- <role-hint>database-cleanup</role-hint>
- </requirement>
- </requirements>
- </component>
- </components>
-</component-set>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml
deleted file mode 100644
index c34c60962..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?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.
- -->
-
-<component-set>
- <components>
- <component>
- <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
- <role-hint>database-cleanup</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.registry.Registry</role>
- <role-hint>database-cleanup</role-hint>
- </requirement>
- <requirement>
- <role>org.apache.maven.archiva.policies.PreDownloadPolicy</role>
- <field-name>prePolicies</field-name>
- </requirement>
- <requirement>
- <role>org.apache.maven.archiva.policies.PostDownloadPolicy</role>
- <field-name>postPolicies</field-name>
- </requirement>
- </requirements>
- </component>
- <component>
- <role>org.codehaus.plexus.registry.Registry</role>
- <role-hint>database-cleanup</role-hint>
- <implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
- <configuration>
- <properties>
- <xml fileName="${basedir}/target/test/repository-manager.xml" config-optional="true" config-forceCreate="true"
- config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/>
- </properties>
- </configuration>
- </component>
-
- <component>
- <role>org.apache.maven.archiva.repository.RepositoryContentFactory</role>
- <implementation>org.apache.maven.archiva.repository.RepositoryContentFactory</implementation>
- <requirements>
- <requirement>
- <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
- <role-hint>database-cleanup</role-hint>
- </requirement>
- </requirements>
- </component>
- </components>
-
- <component>
- <role>org.codehaus.plexus.cache.Cache</role>
- <role-hint>effective-project-cache</role-hint>
- <implementation>org.codehaus.plexus.cache.ehcache.EhcacheCache</implementation>
- <description>Effective Project Cache</description>
- <configuration>
- <disk-expiry-thread-interval-seconds>600</disk-expiry-thread-interval-seconds>
- <disk-persistent>true</disk-persistent>
- <disk-store-path>${java.io.tmpdir}/archiva/effectiveproject</disk-store-path>
- <eternal>true</eternal>
- <max-elements-in-memory>1000</max-elements-in-memory>
- <memory-eviction-policy>LRU</memory-eviction-policy>
- <name>effective-project-cache</name>
- <overflow-to-disk>false</overflow-to-disk>
- <!-- TODO: Adjust the time to live to be more sane (ie: huge 4+ hours) -->
- <!-- 45 minutes = 2700 seconds -->
- <time-to-idle-seconds>2700</time-to-idle-seconds>
- <!-- 30 minutes = 1800 seconds -->
- <time-to-live-seconds>1800</time-to-live-seconds>
- </configuration>
- </component>
-</component-set>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml
index fa046893e..12c821016 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-dependency-tree-consumer</artifactId>
<name>Archiva Consumers :: Dependency Tree Consumer</name>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
index e87fda89c..3d0d77f22 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-lucene-consumers</artifactId>
@@ -32,27 +32,47 @@
<dependencies>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-indexer</artifactId>
+ <artifactId>archiva-configuration</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-database</artifactId>
+ <artifactId>archiva-consumer-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-configuration</artifactId>
+ <artifactId>archiva-repository-layer</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-consumer-api</artifactId>
+ <artifactId>archiva-scheduler-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-repository-layer</artifactId>
+ <artifactId>archiva-scheduler-indexing</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-taskqueue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.nexus</groupId>
+ <artifactId>nexus-indexer</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -60,11 +80,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.bcel</groupId>
- <artifactId>bcel</artifactId>
- <version>5.2</version>
- </dependency>
- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java
deleted file mode 100644
index 63b3c4de1..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package org.apache.archiva.consumers.lucene;
-
-/*
- * 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 java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.repository.ManagedRepositoryContent;
-import org.apache.maven.archiva.repository.RepositoryContentFactory;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
-import org.codehaus.plexus.taskqueue.TaskQueueException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.sonatype.nexus.index.context.IndexingContext;
-import org.sonatype.nexus.index.context.UnsupportedExistingLuceneIndexException;
-
-/**
- * LuceneCleanupRemoveIndexedConsumer Clean up the index of artifacts that are no longer existing in the file system
- * (managed repositories).
- *
- * @version $Id$
- */
-public class LuceneCleanupRemoveIndexedConsumer
- extends AbstractMonitoredConsumer
- implements DatabaseCleanupConsumer
-{
- private static final Logger log = LoggerFactory.getLogger( LuceneCleanupRemoveIndexedConsumer.class );
-
- private RepositoryContentFactory repoFactory;
-
- private ArchivaTaskScheduler scheduler;
-
- public LuceneCleanupRemoveIndexedConsumer( RepositoryContentFactory repoFactory, ArchivaTaskScheduler scheduler )
- {
- this.repoFactory = repoFactory;
- this.scheduler = scheduler;
- }
-
- public void beginScan()
- {
- }
-
- public void completeScan()
- {
- }
-
- public List<String> getIncludedTypes()
- {
- return null;
- }
-
- public void processArchivaArtifact( ArchivaArtifact artifact )
- throws ConsumerException
- {
- ManagedRepositoryContent repoContent = null;
-
- try
- {
- repoContent = repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
- }
- catch ( RepositoryException e )
- {
- throw new ConsumerException( "Can't run index cleanup consumer: " + e.getMessage() );
- }
-
- ManagedRepositoryConfiguration repository = repoContent.getRepository();
-
- IndexingContext context = null;
- try
- {
- File artifactFile = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) );
-
- if ( !artifactFile.exists() )
- {
- context = TaskCreator.createContext( repository );
-
- ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.DELETE,
- context );
-
- log.debug( "Queueing indexing task '" + task + "' to remove the artifact from the index." );
- scheduler.queueIndexingTask( task );
-
- // note we finish immediately here since it isn't done repo-by-repo. It might be nice to ensure that is
- // the case for optimisation though
- task =
- TaskCreator.createIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.FINISH,
- context );
- log.debug( "Queueing indexing task + '" + task + "' to finish indexing." );
- scheduler.queueIndexingTask( task );
- }
-
- }
- catch ( TaskQueueException e )
- {
- throw new ConsumerException( e.getMessage() );
- }
- catch ( IOException e )
- {
- throw new ConsumerException( e.getMessage(), e );
- }
- catch ( UnsupportedExistingLuceneIndexException e )
- {
- throw new ConsumerException( e.getMessage(), e );
- }
- }
-
- public String getDescription()
- {
- return "Remove indexed content if not present on filesystem.";
- }
-
- public String getId()
- {
- return "not-present-remove-indexed";
- }
-
- public boolean isPermanent()
- {
- return false;
- }
-
- public void setRepositoryContentFactory( RepositoryContentFactory repoFactory )
- {
- this.repoFactory = repoFactory;
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
index 2567d13ba..be141b307 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
@@ -26,6 +26,8 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
import org.apache.maven.archiva.configuration.FileTypes;
@@ -34,9 +36,6 @@ import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.registry.Registry;
@@ -64,13 +63,14 @@ public class NexusIndexerConsumer
private File managedRepository;
- private ArchivaTaskScheduler scheduler;
+ private ArchivaTaskScheduler<ArtifactIndexingTask> scheduler;
private IndexingContext context;
private List<String> includes = new ArrayList<String>();
- public NexusIndexerConsumer( ArchivaTaskScheduler scheduler, ArchivaConfiguration configuration, FileTypes filetypes )
+ public NexusIndexerConsumer( ArchivaTaskScheduler<ArtifactIndexingTask> scheduler,
+ ArchivaConfiguration configuration, FileTypes filetypes )
{
this.configuration = configuration;
this.filetypes = filetypes;
@@ -102,7 +102,7 @@ public class NexusIndexerConsumer
try
{
- context = TaskCreator.createContext( repository );
+ context = ArtifactIndexingTask.createContext( repository );
}
catch ( IOException e )
{
@@ -120,12 +120,12 @@ public class NexusIndexerConsumer
File artifactFile = new File( managedRepository, path );
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryContent.getRepository(), artifactFile,
- ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repositoryContent.getRepository(), artifactFile, ArtifactIndexingTask.Action.ADD,
+ context );
try
{
log.debug( "Queueing indexing task + '" + task + "' to add or update the artifact in the index." );
- scheduler.queueIndexingTask( task );
+ scheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
@@ -136,12 +136,12 @@ public class NexusIndexerConsumer
public void completeScan()
{
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryContent.getRepository(), null,
- ArtifactIndexingTask.Action.FINISH, context );
+ new ArtifactIndexingTask( repositoryContent.getRepository(), null, ArtifactIndexingTask.Action.FINISH,
+ context );
try
{
log.debug( "Queueing indexing task + '" + task + "' to finish indexing." );
- scheduler.queueIndexingTask( task );
+ scheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
@@ -173,7 +173,7 @@ public class NexusIndexerConsumer
includes.clear();
includes.addAll( filetypes.getFileTypePatterns( FileTypes.INDEXABLE_CONTENT ) );
-
+
includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
index 4e16b7f7d..36cdd703b 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
@@ -8,9 +8,4 @@
<constructor-arg ref="archivaConfiguration"/>
<constructor-arg ref="fileTypes"/>
</bean>
-
- <bean id="indexCleanupConsumer" class="org.apache.archiva.consumers.lucene.LuceneCleanupRemoveIndexedConsumer" lazy-init="true">
- <constructor-arg ref="repositoryContentFactory"/>
- <constructor-arg ref="archivaTaskScheduler"/>
- </bean>
</beans> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java
deleted file mode 100644
index 1eb7237f9..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.apache.archiva.consumers.lucene;
-
-/*
- * 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 java.io.File;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.repository.ManagedRepositoryContent;
-import org.apache.maven.archiva.repository.RepositoryContentFactory;
-import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
-import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-import org.codehaus.plexus.taskqueue.TaskQueue;
-import org.easymock.MockControl;
-import org.easymock.classextension.MockClassControl;
-
-/**
- * LuceneCleanupRemoveIndexedConsumerTest
- */
-public class LuceneCleanupRemoveIndexedConsumerTest
- extends PlexusInSpringTestCase
-{
- private LuceneCleanupRemoveIndexedConsumer consumer;
-
- private RepositoryContentFactory repoFactory;
-
- private MockControl repoFactoryControl;
-
- private ManagedRepositoryConfiguration repositoryConfig;
-
- private TaskQueue indexingQueue;
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- repoFactoryControl = MockClassControl.createControl( RepositoryContentFactory.class );
- repoFactory = (RepositoryContentFactory) repoFactoryControl.getMock();
-
- ArchivaTaskScheduler scheduler = (ArchivaTaskScheduler) lookup( ArchivaTaskScheduler.class );
-
- indexingQueue = (TaskQueue) lookup( TaskQueue.ROLE, "indexing" );
-
- consumer = new LuceneCleanupRemoveIndexedConsumer( repoFactory, scheduler );
-
- repositoryConfig = new ManagedRepositoryConfiguration();
- repositoryConfig.setId( "test-repo" );
- repositoryConfig.setLocation( getBasedir() + "/target/test-classes/test-repo" );
- repositoryConfig.setLayout( "default" );
- repositoryConfig.setName( "Test Repository" );
- repositoryConfig.setScanned( true );
- repositoryConfig.setSnapshots( false );
- repositoryConfig.setReleases( true );
- repositoryConfig.setIndexDir( getBasedir() + "/target/test-classes/test-repo/.cleanup-index" );
- }
-
- public void tearDown()
- throws Exception
- {
- FileUtils.deleteDirectory( new File( repositoryConfig.getIndexDir() ) );
-
- super.tearDown();
- }
-
- @SuppressWarnings( "unchecked" )
- public void testProcessArtifactArtifactDoesNotExist()
- throws Exception
- {
- assertTrue( indexingQueue.getQueueSnapshot().isEmpty() );
-
- ArchivaArtifact artifact =
- new ArchivaArtifact( "org.apache.archiva", "archiva-lucene-consumers", "1.2", null, "jar", "test-repo" );
-
- ManagedRepositoryContent repoContent = new ManagedDefaultRepositoryContent();
- repoContent.setRepository( repositoryConfig );
-
- File artifactFile = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) );
-
- repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( repositoryConfig.getId() ),
- repoContent );
-
- repoFactoryControl.replay();
-
- consumer.processArchivaArtifact( artifact );
-
- repoFactoryControl.verify();
-
- List<ArtifactIndexingTask> queue = indexingQueue.getQueueSnapshot();
- assertEquals( 2, queue.size() );
- ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.DELETE, null );
- assertEquals( task, queue.get( 0 ) );
- task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.FINISH, null );
- assertEquals( task, queue.get( 1 ) );
- }
-
- public void testProcessArtifactArtifactExists()
- throws Exception
- {
- assertTrue( indexingQueue.getQueueSnapshot().isEmpty() );
-
- ArchivaArtifact artifact =
- new ArchivaArtifact( "org.apache.maven.archiva", "archiva-lucene-cleanup", "1.0", null, "jar", "test-repo" );
- ManagedRepositoryContent repoContent = new ManagedDefaultRepositoryContent();
- repoContent.setRepository( repositoryConfig );
-
- repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( repositoryConfig.getId() ),
- repoContent );
-
- repoFactoryControl.replay();
-
- consumer.processArchivaArtifact( artifact );
-
- repoFactoryControl.verify();
-
- assertTrue( indexingQueue.getQueueSnapshot().isEmpty() );
- }
-
- @Override
- protected String getPlexusConfigLocation()
- {
- return "/org/apache/archiva/consumers/lucene/LuceneConsumersTest.xml";
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
index fc725f785..7d6953ddd 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
@@ -27,20 +27,16 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask;
import org.apache.commons.io.FileUtils;
-import org.apache.maven.archiva.common.ArchivaException;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.codehaus.plexus.taskqueue.TaskQueueException;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
/**
* NexusIndexerConsumerTest
@@ -49,26 +45,11 @@ public class NexusIndexerConsumerTest
extends PlexusInSpringTestCase
{
private final class ArchivaTaskSchedulerStub
- implements ArchivaTaskScheduler
+ implements ArchivaTaskScheduler<ArtifactIndexingTask>
{
Set<File> indexed = new HashSet<File>();
- public void startup()
- throws ArchivaException
- {
- }
-
- public void scheduleDatabaseTasks()
- throws TaskExecutionException
- {
- }
-
- public void queueRepositoryTask( RepositoryTask task )
- throws TaskQueueException
- {
- }
-
- public void queueIndexingTask( ArtifactIndexingTask task )
+ public void queueTask( ArtifactIndexingTask task )
throws TaskQueueException
{
switch ( task.getAction() )
@@ -91,21 +72,6 @@ public class NexusIndexerConsumerTest
break;
}
}
-
- public void queueDatabaseTask( DatabaseTask task )
- throws TaskQueueException
- {
- }
-
- public boolean isProcessingRepositoryTask( String repositoryId )
- {
- return false;
- }
-
- public boolean isProcessingDatabaseTask()
- {
- return false;
- }
}
private KnownRepositoryContentConsumer nexusIndexerConsumer;
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/stubs/ArchivaDAOStub.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/stubs/ArchivaDAOStub.java
deleted file mode 100644
index 47ebdce62..000000000
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/stubs/ArchivaDAOStub.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.archiva.consumers.lucene.stubs;
-
-/*
- * 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 java.io.Serializable;
-import java.util.List;
-
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.ProjectModelDAO;
-import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO;
-import org.apache.maven.archiva.database.RepositoryProblemDAO;
-import org.apache.maven.archiva.database.SimpleConstraint;
-
-/**
- * Using a stub for faster tests! Not really used for the unit tests, just for dependency injection.
- */
-public class ArchivaDAOStub
- implements ArchivaDAO
-{
-
- public ArtifactDAO getArtifactDAO()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ProjectModelDAO getProjectModelDAO()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public RepositoryContentStatisticsDAO getRepositoryContentStatisticsDAO()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public RepositoryProblemDAO getRepositoryProblemDAO()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public List<?> query( SimpleConstraint constraint )
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Object save( Serializable obj )
- {
- // TODO Auto-generated method stub
- return null;
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
new file mode 100644
index 000000000..5c9ec1c04
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-consumers</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-metadata-consumer</artifactId>
+ <name>Archiva Metadata Consumer</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ </dependency>
+ <dependency> <!-- FIXME: temporary coupling to file based repo -->
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-file</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
new file mode 100644
index 000000000..44c03754f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
@@ -0,0 +1,197 @@
+package org.apache.archiva.consumers.metadata;
+
+/*
+ * 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 java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.ConfigurationNames;
+import org.apache.maven.archiva.configuration.FileTypes;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
+import org.apache.maven.archiva.consumers.ConsumerException;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+import org.apache.maven.archiva.model.ArtifactReference;
+import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
+
+/**
+ * Take an artifact off of disk and put it into the metadata repository.
+ *
+ * @version $Id: ArtifactUpdateDatabaseConsumer.java 718864 2008-11-19 06:33:35Z brett $
+ * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
+ * role-hint="create-archiva-metadata" instantiation-strategy="per-lookup"
+ */
+public class ArchivaMetadataCreationConsumer
+ extends AbstractMonitoredConsumer
+ implements KnownRepositoryContentConsumer, RegistryListener, Initializable
+{
+ /**
+ * @plexus.configuration default-value="create-archiva-metadata"
+ */
+ private String id;
+
+ /**
+ * @plexus.configuration default-value="Create basic metadata for Archiva to be able to reference the artifact"
+ */
+ private String description;
+
+ /**
+ * @plexus.requirement
+ */
+ private ArchivaConfiguration configuration;
+
+ /**
+ * @plexus.requirement
+ */
+ private FileTypes filetypes;
+
+ private Date whenGathered;
+
+ /**
+ * @plexus.requirement
+ */
+ private ManagedRepositoryContent repository;
+
+ private List<String> includes = new ArrayList<String>();
+
+ /**
+ * @plexus.requirement
+ */
+ private MetadataRepository metadataRepository;
+
+ public String getId()
+ {
+ return this.id;
+ }
+
+ public String getDescription()
+ {
+ return this.description;
+ }
+
+ public boolean isPermanent()
+ {
+ return true;
+ }
+
+ public List<String> getExcludes()
+ {
+ return getDefaultArtifactExclusions();
+ }
+
+ public List<String> getIncludes()
+ {
+ return this.includes;
+ }
+
+ public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered )
+ throws ConsumerException
+ {
+ this.repository.setRepository( repo );
+ this.whenGathered = whenGathered;
+ }
+
+ public void processFile( String path )
+ throws ConsumerException
+ {
+ // note that we do minimal processing including checksums and POM information for performance of
+ // the initial scan. Any request for this information will be intercepted and populated on-demand
+ // or picked up by subsequent scans
+ ArtifactReference artifact;
+ try
+ {
+ artifact = repository.toArtifactReference( path );
+ }
+ catch ( LayoutException e )
+ {
+ throw new ConsumerException( e.getMessage(), e );
+ }
+
+ File file = new File( repository.getRepoRoot(), path );
+
+ ProjectMetadata project = new ProjectMetadata();
+ project.setNamespace( artifact.getGroupId() );
+ project.setId( artifact.getArtifactId() );
+
+ ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata();
+ versionMetadata.setId( artifact.getVersion() ); // TODO: this should be the version from the POM, not the timestamped version
+
+ ArtifactMetadata artifactMeta = new ArtifactMetadata();
+ artifactMeta.setId( file.getName() );
+ artifactMeta.setUpdated( file.lastModified() );
+ artifactMeta.setSize( file.length() );
+ artifactMeta.setVersion( artifact.getVersion() );
+
+ // TODO: read the POM and fill in the rest of the information
+
+ // TODO: store "whenGathered"
+
+ // TODO: transaction
+ // read the metadata and update it if it is newer or doesn't exist
+ metadataRepository.updateArtifact( repository.getId(), project.getNamespace(), project.getId(), versionMetadata.getId(), artifactMeta );
+ metadataRepository.updateProjectVersion( repository.getId(), project.getNamespace(), project.getId(), versionMetadata );
+ metadataRepository.updateProject( repository.getId(), project );
+ }
+
+ public void completeScan()
+ {
+ /* do nothing */
+ }
+
+ public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
+ {
+ if ( ConfigurationNames.isRepositoryScanning( propertyName ) )
+ {
+ initIncludes();
+ }
+ }
+
+ public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
+ {
+ /* do nothing */
+ }
+
+ private void initIncludes()
+ {
+ includes.clear();
+
+ includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
+ }
+
+ public void initialize()
+ throws InitializationException
+ {
+ configuration.addChangeListener( this );
+
+ initIncludes();
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml
index 7afdc1636..f9532f446 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-signature-consumers</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/pom.xml
index b444f0259..aa07bdea6 100644
--- a/archiva-modules/archiva-base/archiva-consumers/pom.xml
+++ b/archiva-modules/archiva-base/archiva-consumers/pom.xml
@@ -1,18 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~ 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
~
- ~ Licensed 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
~
- ~ 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.
+ ~ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@@ -20,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-consumers</artifactId>
@@ -34,6 +37,7 @@
<module>archiva-lucene-consumers</module>
<module>archiva-signature-consumers</module>
<module>archiva-dependency-tree-consumer</module>
+ <module>archiva-metadata-consumer</module>
</modules>
<build>
diff --git a/archiva-modules/archiva-base/archiva-converter/pom.xml b/archiva-modules/archiva-base/archiva-converter/pom.xml
index 75735a78d..fb94cdbde 100644
--- a/archiva-modules/archiva-base/archiva-converter/pom.xml
+++ b/archiva-modules/archiva-base/archiva-converter/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-converter</artifactId>
@@ -41,6 +41,10 @@
<artifactId>archiva-repository-layer</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-scanner</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-i18n</artifactId>
</dependency>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java
index 1831fd1ae..b37e0c893 100644
--- a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java
@@ -19,23 +19,23 @@ package org.apache.maven.archiva.converter.legacy;
* under the License.
*/
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.archiva.repository.scanner.RepositoryScanner;
+import org.apache.archiva.repository.scanner.RepositoryScannerException;
import org.apache.maven.archiva.common.utils.PathUtil;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.converter.RepositoryConversionException;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanner;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
/**
* DefaultLegacyRepositoryConverter
*
@@ -97,7 +97,7 @@ public class DefaultLegacyRepositoryConverter
repoScanner.scan( legacyRepository, knownConsumers, invalidConsumers, ignoredContent,
RepositoryScanner.FRESH_SCAN );
}
- catch ( RepositoryException e )
+ catch ( RepositoryScannerException e )
{
throw new RepositoryConversionException( "Error convering legacy repository.", e );
}
diff --git a/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml b/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml
index bf6716d88..7bf65370d 100644
--- a/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml
+++ b/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-dependency-graph</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-indexer/pom.xml b/archiva-modules/archiva-base/archiva-indexer/pom.xml
index adcfdab5b..5eb3c19eb 100644
--- a/archiva-modules/archiva-base/archiva-indexer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-indexer/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-indexer</artifactId>
@@ -30,13 +30,17 @@
<dependencies>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-repository-layer</artifactId>
+ <artifactId>archiva-configuration</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-model</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
diff --git a/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/util/SearchUtil.java b/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/util/SearchUtil.java
index cd15df2de..2048e6002 100644
--- a/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/util/SearchUtil.java
+++ b/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/util/SearchUtil.java
@@ -21,8 +21,6 @@ package org.apache.archiva.indexer.util;
/**
* SearchUtil - utility class for search.
- *
- * @version
*/
public class SearchUtil
{
diff --git a/archiva-modules/archiva-base/archiva-model/pom.xml b/archiva-modules/archiva-base/archiva-model/pom.xml
index f686016c9..90249d6b8 100755
--- a/archiva-modules/archiva-base/archiva-model/pom.xml
+++ b/archiva-modules/archiva-base/archiva-model/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-model</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-policies/pom.xml b/archiva-modules/archiva-base/archiva-policies/pom.xml
index cbbe88d5d..22f14c2c0 100644
--- a/archiva-modules/archiva-base/archiva-policies/pom.xml
+++ b/archiva-modules/archiva-base/archiva-policies/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-policies</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-proxy/pom.xml b/archiva-modules/archiva-base/archiva-proxy/pom.xml
index 90a1167ef..334b003ba 100644
--- a/archiva-modules/archiva-base/archiva-proxy/pom.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-proxy</artifactId>
@@ -43,7 +43,11 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
+ <artifactId>archiva-repository-scanner</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-repository</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
index 06ab597cd..1306eb76e 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
@@ -27,9 +27,11 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.Map.Entry;
+import java.util.Properties;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
@@ -55,9 +57,6 @@ import org.apache.maven.archiva.repository.RepositoryException;
import org.apache.maven.archiva.repository.RepositoryNotFoundException;
import org.apache.maven.archiva.repository.metadata.MetadataTools;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.apache.maven.wagon.ConnectionException;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.Wagon;
@@ -133,9 +132,9 @@ public class DefaultRepositoryProxyConnectors
private WagonFactory wagonFactory;
/**
- * @plexus.requirement
+ * @plexus.requirement role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="repository"
*/
- private ArchivaTaskScheduler scheduler;
+ private RepositoryArchivaTaskScheduler scheduler;
public File fetchFromProxies( ManagedRepositoryContent repository, ArtifactReference artifact )
throws ProxyDownloadException
@@ -581,15 +580,19 @@ public class DefaultRepositoryProxyConnectors
}
return resource;
- }
-
+ }
+
private void queueRepositoryTask( String repositoryId, File localFile )
{
- RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile, true, true );
-
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repositoryId );
+ task.setResourceFile( localFile );
+ task.setUpdateRelatedArtifacts( true );
+ task.setScanAll( true );
+
try
{
- scheduler.queueRepositoryTask( task );
+ scheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
@@ -623,8 +626,9 @@ public class DefaultRepositoryProxyConnectors
* @param remoteRepository the remote repository to transfer from.
* @param remotePath the remote path to the resource to get.
* @param repository the managed repository that will hold the file
- * @param localFile the local file that should contain the downloaded contents
- * @param type the type of checksum to transfer (example: ".md5" or ".sha1")
+ * @param resource the local file that should contain the downloaded contents
+ * @param tmpDirectory the temporary directory to download to
+ * @param ext the type of checksum to transfer (example: ".md5" or ".sha1")
* @throws ProxyException if copying the downloaded file into place did not succeed.
*/
private File transferChecksum( Wagon wagon, RemoteRepositoryContent remoteRepository, String remotePath,
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml
index 0c735768c..80bc628da 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml
@@ -78,7 +78,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml
index 1c6faa919..d5d032574 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml
@@ -76,7 +76,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml
index f5795b797..884b9778f 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml
@@ -81,7 +81,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml
index 34bd22bf8..620cc84d0 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml
@@ -72,7 +72,8 @@
<role-hint>default</role-hint>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml
index 1c6faa919..d5d032574 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml
@@ -76,7 +76,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml
index 1c6faa919..d5d032574 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml
@@ -76,7 +76,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml
index 2a03b3a43..2b14dd8fb 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml
@@ -95,7 +95,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml
index 1c6faa919..d5d032574 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml
@@ -76,7 +76,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml
index 1c6faa919..d5d032574 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml
@@ -76,7 +76,8 @@
<field-name>urlFailureCache</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
index 4848285dd..a939999f2 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-repository-layer</artifactId>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java
deleted file mode 100644
index 73ef2ca1a..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.maven.archiva.repository.scanner;
-
-import java.util.Date;
-import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-
-public class RepositoryContentConsumersStub
- extends RepositoryContentConsumers
-{
- public RepositoryContentConsumersStub(ArchivaConfiguration archivaConfiguration)
- {
- super(archivaConfiguration);
- }
-
- @Override
- public Date getStartTime()
- {
- Date startTimeForTest = new Date( System.currentTimeMillis() );
- startTimeForTest.setTime( 12345678 );
-
- return startTimeForTest;
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/pom.xml b/archiva-modules/archiva-base/archiva-repository-scanner/pom.xml
new file mode 100644
index 000000000..bafad290f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-base</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-repository-scanner</artifactId>
+ <name>Archiva Repository Scanner</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
index 37ee25220..f2094dcd7 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -29,14 +29,13 @@ import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
-import org.apache.maven.archiva.repository.RepositoryException;
import org.codehaus.plexus.util.DirectoryWalker;
/**
* DefaultRepositoryScanner
*
* @version $Id$
- * @plexus.component role="org.apache.maven.archiva.repository.scanner.RepositoryScanner"
+ * @plexus.component role="org.apache.archiva.repository.scanner.RepositoryScanner"
*/
public class DefaultRepositoryScanner
implements RepositoryScanner
@@ -52,7 +51,7 @@ public class DefaultRepositoryScanner
private RepositoryContentConsumers consumerUtil;
public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince )
- throws RepositoryException
+ throws RepositoryScannerException
{
List<KnownRepositoryContentConsumer> knownContentConsumers = consumerUtil.getSelectedKnownConsumers();
List<InvalidRepositoryContentConsumer> invalidContentConsumers = consumerUtil.getSelectedInvalidConsumers();
@@ -65,7 +64,7 @@ public class DefaultRepositoryScanner
List<KnownRepositoryContentConsumer> knownContentConsumers,
List<InvalidRepositoryContentConsumer> invalidContentConsumers,
List<String> ignoredContentPatterns, long changesSince )
- throws RepositoryException
+ throws RepositoryScannerException
{
if ( repository == null )
{
@@ -73,7 +72,7 @@ public class DefaultRepositoryScanner
}
File repositoryBase = new File( repository.getLocation() );
-
+
if ( !repositoryBase.exists() )
{
throw new UnsupportedOperationException( "Unable to scan a repository, directory "
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
index ec54b041e..6f22edebe 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
+import org.apache.archiva.repository.scanner.functors.TriggerBeginScanClosure;
import org.apache.archiva.repository.scanner.functors.TriggerScanCompletedClosure;
import org.apache.commons.collections.Closure;
import org.apache.commons.collections.CollectionUtils;
@@ -36,35 +38,32 @@ import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
-import org.apache.maven.archiva.repository.scanner.functors.TriggerBeginScanClosure;
+import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
- * RepositoryContentConsumerUtil
- *
+ * RepositoryContentConsumerUtil
+ *
* @version $Id$
*/
-public class RepositoryContentConsumers
- implements ApplicationContextAware
+public class RepositoryContentConsumers implements ApplicationContextAware
{
private ApplicationContext applicationContext;
-
+
private ArchivaConfiguration archivaConfiguration;
private List<KnownRepositoryContentConsumer> selectedKnownConsumers;
private List<InvalidRepositoryContentConsumer> selectedInvalidConsumers;
-
- public RepositoryContentConsumers( ArchivaConfiguration archivaConfiguration )
+
+ public RepositoryContentConsumers(ArchivaConfiguration archivaConfiguration)
{
- this.archivaConfiguration = archivaConfiguration;
+ this.archivaConfiguration = archivaConfiguration;
}
- public void setApplicationContext( ApplicationContext applicationContext )
+ public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException
{
this.applicationContext = applicationContext;
@@ -72,12 +71,13 @@ public class RepositoryContentConsumers
/**
* <p>
- * Get the list of Ids associated with those {@link KnownRepositoryContentConsumer} that have been selected in the
- * configuration to execute.
+ * Get the list of Ids associated with those {@link KnownRepositoryContentConsumer} that have
+ * been selected in the configuration to execute.
* </p>
+ *
* <p>
- * NOTE: This list can be larger and contain entries that might not exist or be available in the classpath, or as a
- * component.
+ * NOTE: This list can be larger and contain entries that might not exist or be available
+ * in the classpath, or as a component.
* </p>
*
* @return the list of consumer ids that have been selected by the configuration.
@@ -90,12 +90,13 @@ public class RepositoryContentConsumers
/**
* <p>
- * Get the list of Ids associated with those {@link InvalidRepositoryContentConsumer} that have been selected in the
- * configuration to execute.
+ * Get the list of Ids associated with those {@link InvalidRepositoryContentConsumer} that have
+ * been selected in the configuration to execute.
* </p>
+ *
* <p>
- * NOTE: This list can be larger and contain entries that might not exist or be available in the classpath, or as a
- * component.
+ * NOTE: This list can be larger and contain entries that might not exist or be available
+ * in the classpath, or as a component.
* </p>
*
* @return the list of consumer ids that have been selected by the configuration.
@@ -107,8 +108,8 @@ public class RepositoryContentConsumers
}
/**
- * Get the map of {@link String} ids to {@link KnownRepositoryContentConsumer} implementations, for those consumers
- * that have been selected according to the active configuration.
+ * Get the map of {@link String} ids to {@link KnownRepositoryContentConsumer} implementations,
+ * for those consumers that have been selected according to the active configuration.
*
* @return the map of String ids to {@link KnownRepositoryContentConsumer} objects.
*/
@@ -125,15 +126,14 @@ public class RepositoryContentConsumers
}
/**
- * Get the map of {@link String} ids to {@link InvalidRepositoryContentConsumer} implementations, for those
- * consumers that have been selected according to the active configuration.
+ * Get the map of {@link String} ids to {@link InvalidRepositoryContentConsumer} implementations,
+ * for those consumers that have been selected according to the active configuration.
*
* @return the map of String ids to {@link InvalidRepositoryContentConsumer} objects.
*/
public Map<String, InvalidRepositoryContentConsumer> getSelectedInvalidConsumersMap()
{
- Map<String, InvalidRepositoryContentConsumer> consumerMap =
- new HashMap<String, InvalidRepositoryContentConsumer>();
+ Map<String, InvalidRepositoryContentConsumer> consumerMap = new HashMap<String, InvalidRepositoryContentConsumer>();
for ( InvalidRepositoryContentConsumer consumer : getSelectedInvalidConsumers() )
{
@@ -144,10 +144,11 @@ public class RepositoryContentConsumers
}
/**
- * Get the list of {@link KnownRepositoryContentConsumer} objects that are selected according to the active
- * configuration.
+ * Get the list of {@link KnownRepositoryContentConsumer} objects that are
+ * selected according to the active configuration.
*
- * @return the list of {@link KnownRepositoryContentConsumer} that have been selected by the active configuration.
+ * @return the list of {@link KnownRepositoryContentConsumer} that have been selected
+ * by the active configuration.
*/
public synchronized List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
{
@@ -170,10 +171,11 @@ public class RepositoryContentConsumers
}
/**
- * Get the list of {@link InvalidRepositoryContentConsumer} objects that are selected according to the active
- * configuration.
+ * Get the list of {@link InvalidRepositoryContentConsumer} objects that are
+ * selected according to the active configuration.
*
- * @return the list of {@link InvalidRepositoryContentConsumer} that have been selected by the active configuration.
+ * @return the list of {@link InvalidRepositoryContentConsumer} that have been selected
+ * by the active configuration.
*/
public synchronized List<InvalidRepositoryContentConsumer> getSelectedInvalidConsumers()
{
@@ -196,36 +198,35 @@ public class RepositoryContentConsumers
}
/**
- * Get the list of {@link KnownRepositoryContentConsumer} objects that are available and present in the classpath
- * and as components in the IoC.
+ * Get the list of {@link KnownRepositoryContentConsumer} objects that are
+ * available and present in the classpath and as components in the IoC.
*
- * @return the list of all available {@link KnownRepositoryContentConsumer} present in the classpath and as a
- * component in the IoC.
+ * @return the list of all available {@link KnownRepositoryContentConsumer} present in the classpath
+ * and as a component in the IoC.
*/
- @SuppressWarnings("unchecked")
public List<KnownRepositoryContentConsumer> getAvailableKnownConsumers()
{
return new ArrayList<KnownRepositoryContentConsumer>( applicationContext.getBeansOfType( KnownRepositoryContentConsumer.class ).values() );
}
/**
- * Get the list of {@link InvalidRepositoryContentConsumer} objects that are available and present in the classpath
- * and as components in the IoC.
+ * Get the list of {@link InvalidRepositoryContentConsumer} objects that are
+ * available and present in the classpath and as components in the IoC.
*
- * @return the list of all available {@link InvalidRepositoryContentConsumer} present in the classpath and as a
- * component in the IoC.
+ * @return the list of all available {@link InvalidRepositoryContentConsumer} present in the classpath
+ * and as a component in the IoC.
*/
- @SuppressWarnings("unchecked")
public List<InvalidRepositoryContentConsumer> getAvailableInvalidConsumers()
{
return new ArrayList<InvalidRepositoryContentConsumer>( applicationContext.getBeansOfType( InvalidRepositoryContentConsumer.class ).values() );
}
/**
- * A convenience method to execute all of the active selected consumers for a particular arbitrary file.
+ * A convienence method to execute all of the active selected consumers for a
+ * particular arbitrary file.
* NOTE: Make sure that there is no repository scanning task executing before invoking this so as to prevent
* the index writer/reader of the current index-content consumer executing from getting closed. For an example,
- * see ArchivaDavResource#executeConsumers( File ).
+ * see ArchivaDavResource#executeConsumers( File ).
*
* @param repository the repository configuration to use.
* @param localFile the local file to execute the consumers against.
@@ -235,28 +236,28 @@ public class RepositoryContentConsumers
{
// Run the repository consumers
try
- {
+ {
Closure triggerBeginScan = new TriggerBeginScanClosure( repository, getStartTime() );
List<KnownRepositoryContentConsumer> selectedKnownConsumers = getSelectedKnownConsumers();
-
+
// MRM-1212/MRM-1197
- // - do not create missing/fix invalid checksums and update metadata when deploying from webdav since these are uploaded by maven
+ // - do not create missing/fix invalid checksums and update metadata when deploying from webdav since these are uploaded by maven
if( updateRelatedArtifacts == false )
- {
+ {
List<KnownRepositoryContentConsumer> clone = new ArrayList<KnownRepositoryContentConsumer>();
clone.addAll( selectedKnownConsumers );
-
+
for( KnownRepositoryContentConsumer consumer : clone )
{
- if( consumer.getId().equals( "create-missing-checksums" ) ||
+ if( consumer.getId().equals( "create-missing-checksums" ) ||
consumer.getId().equals( "metadata-updater" ) )
{
selectedKnownConsumers.remove( consumer );
}
- }
+ }
}
-
+
List<InvalidRepositoryContentConsumer> selectedInvalidConsumers = getSelectedInvalidConsumers();
CollectionUtils.forAllDo( selectedKnownConsumers, triggerBeginScan );
CollectionUtils.forAllDo( selectedInvalidConsumers, triggerBeginScan );
@@ -275,7 +276,7 @@ public class RepositoryContentConsumers
if ( predicate.getWantedFileCount() <= 0 )
{
- // Nothing known processed this file. It is invalid!
+ // Nothing known processed this file. It is invalid!
CollectionUtils.forAllDo( selectedInvalidConsumers, closure );
}
@@ -285,11 +286,10 @@ public class RepositoryContentConsumers
}
finally
{
- /*
- * TODO: This is never called by the repository scanner instance, so not calling here either - but it
- * probably should be? CollectionUtils.forAllDo( availableKnownConsumers, triggerCompleteScan );
- * CollectionUtils.forAllDo( availableInvalidConsumers, triggerCompleteScan );
- */
+ /* TODO: This is never called by the repository scanner instance, so not calling here either - but it probably should be?
+ CollectionUtils.forAllDo( availableKnownConsumers, triggerCompleteScan );
+ CollectionUtils.forAllDo( availableInvalidConsumers, triggerCompleteScan );
+ */
}
}
@@ -302,12 +302,12 @@ public class RepositoryContentConsumers
{
this.selectedInvalidConsumers = selectedInvalidConsumers;
}
-
+
protected Date getStartTime()
- {
+ {
return new Date( System.currentTimeMillis() );
}
-
+
public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration )
{
this.archivaConfiguration = archivaConfiguration;
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanStatistics.java
index 5d4fd3f06..62ab2ca7e 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanStatistics.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,20 +19,18 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
-
import java.text.SimpleDateFormat;
import java.util.List;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+
/**
* RepositoryScanStatistics - extension to the RepositoryContentStatistics model.
*
* @version $Id$
*/
public class RepositoryScanStatistics
- extends RepositoryContentStatistics
{
private transient List<String> knownConsumers;
@@ -42,28 +40,78 @@ public class RepositoryScanStatistics
private SimpleDateFormat df = new SimpleDateFormat();
+ /**
+ * Field repositoryId
+ */
+ private String repositoryId;
+
+ /**
+ * Field whenGathered
+ */
+ private java.util.Date whenGathered;
+
+ /**
+ * Field duration
+ */
+ private long duration = 0;
+
+ /**
+ * Field totalFileCount
+ */
+ private long totalFileCount = 0;
+
+ /**
+ * Field newFileCount
+ */
+ private long newFileCount = 0;
+
+ /**
+ * Field totalProjectCount
+ */
+ private long totalProjectCount = 0;
+
+ /**
+ * Field totalGroupCount
+ */
+ private long totalGroupCount = 0;
+
+ /**
+ * Field totalArtifactCount
+ */
+ private long totalArtifactCount = 0;
+
+ /**
+ * Field totalSize
+ */
+ private long totalSize = 0;
+
public void triggerStart()
{
startTimestamp = System.currentTimeMillis();
}
+ public java.util.Date getWhenGathered()
+ {
+ return whenGathered;
+ }
+
public void triggerFinished()
{
long finished = System.currentTimeMillis();
- setDuration( finished - startTimestamp );
- setWhenGathered( new java.util.Date( finished ) );
+ this.duration = finished - startTimestamp;
+ this.whenGathered = new java.util.Date( finished );
}
public void increaseFileCount()
{
long count = getTotalFileCount();
- setTotalFileCount( ++count );
+ this.totalFileCount = ++count;
}
public void increaseNewFileCount()
{
long count = getNewFileCount();
- setNewFileCount( ++count );
+ this.newFileCount = ++count;
}
public void setKnownConsumers( List<String> consumers )
@@ -142,4 +190,49 @@ public class RepositoryScanStatistics
return buf.toString();
}
+
+ public void setRepositoryId( String repositoryId )
+ {
+ this.repositoryId = repositoryId;
+ }
+
+ public String getRepositoryId()
+ {
+ return repositoryId;
+ }
+
+ public long getDuration()
+ {
+ return duration;
+ }
+
+ public long getTotalFileCount()
+ {
+ return totalFileCount;
+ }
+
+ public long getNewFileCount()
+ {
+ return newFileCount;
+ }
+
+ public long getTotalProjectCount()
+ {
+ return totalProjectCount;
+ }
+
+ public long getTotalGroupCount()
+ {
+ return totalGroupCount;
+ }
+
+ public long getTotalArtifactCount()
+ {
+ return totalArtifactCount;
+ }
+
+ public long getTotalSize()
+ {
+ return totalSize;
+ }
}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
index 1ecd3e811..5a505e9d2 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,12 +19,11 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
+import java.util.List;
+
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.RepositoryException;
-
-import java.util.List;
/**
* RepositoryScanner
@@ -79,10 +78,10 @@ public interface RepositoryScanner
* (To have all content be taken into consideration regardless of timestamp,
* use the {@link #FRESH_SCAN} constant)
* @return the statistics for this scan.
- * @throws RepositoryException if there was a fundamental problem with getting the discoverer started.
+ * @throws RepositoryScannerException if there was a fundamental problem with getting the discoverer started.
*/
public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince )
- throws RepositoryException;
+ throws RepositoryScannerException;
/**
* Scan the repository for content changes.
@@ -99,12 +98,12 @@ public interface RepositoryScanner
* (To have all content be taken into consideration regardless of timestamp,
* use the {@link #FRESH_SCAN} constant)
* @return the statistics for this scan.
- * @throws RepositoryException if there was a fundamental problem with getting the discoverer started.
+ * @throws RepositoryScannerException if there was a fundamental problem with getting the discoverer started.
*/
public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository,
List<KnownRepositoryContentConsumer> knownContentConsumers,
List<InvalidRepositoryContentConsumer> invalidContentConsumers,
List<String> ignoredContentPatterns, long changesSince )
- throws RepositoryException;
+ throws RepositoryScannerException;
}
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerException.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerException.java
new file mode 100644
index 000000000..e66c82235
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerException.java
@@ -0,0 +1,51 @@
+package org.apache.archiva.repository.scanner;
+
+/*
+ * 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.
+ */
+
+/**
+ * RepositoryException
+ *
+ * @version $Id: RepositoryException.java 718864 2008-11-19 06:33:35Z brett $
+ */
+public class RepositoryScannerException
+ extends Exception
+{
+
+ public RepositoryScannerException()
+ {
+ super();
+ }
+
+ public RepositoryScannerException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public RepositoryScannerException( String message )
+ {
+ super( message );
+ }
+
+ public RepositoryScannerException( Throwable cause )
+ {
+ super( cause );
+ }
+
+}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
index e8d86d90c..a2a1df75d 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -23,6 +23,8 @@ import java.io.File;
import java.util.Date;
import java.util.List;
+import org.apache.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
+import org.apache.archiva.repository.scanner.functors.TriggerBeginScanClosure;
import org.apache.archiva.repository.scanner.functors.TriggerScanCompletedClosure;
import org.apache.commons.collections.Closure;
import org.apache.commons.collections.CollectionUtils;
@@ -32,9 +34,7 @@ import org.apache.maven.archiva.common.utils.BaseFile;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
-import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
-import org.apache.maven.archiva.repository.scanner.functors.TriggerBeginScanClosure;
+import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate;
import org.codehaus.plexus.util.DirectoryWalkListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -145,11 +145,10 @@ public class RepositoryScannerInstance
public void directoryWalkFinished()
{
- TriggerScanCompletedClosure scanCompletedClosure = new TriggerScanCompletedClosure(repository);
-
+ TriggerScanCompletedClosure scanCompletedClosure = new TriggerScanCompletedClosure( repository );
CollectionUtils.forAllDo( knownConsumers, scanCompletedClosure );
CollectionUtils.forAllDo( invalidConsumers, scanCompletedClosure );
-
+
log.info( "Walk Finished: [" + this.repository.getId() + "] " + this.repository.getLocation() );
stats.triggerFinished();
}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java
index f8fe3ff70..5fadde292 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner.functors;
+package org.apache.archiva.repository.scanner.functors;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerBeginScanClosure.java
index d0a05cbc5..067ab1641 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerBeginScanClosure.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner.functors;
+package org.apache.archiva.repository.scanner.functors;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
index 82875a6ab..82875a6ab 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/spring-context.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/resources/META-INF/spring-context.xml
index 5cc3f6897..f8bce47bc 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/resources/META-INF/spring-context.xml
@@ -3,7 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean id="repositoryContentConsumers" class="org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers" scope="prototype">
- <constructor-arg ref="archivaConfiguration"/>
+ <bean id="repositoryContentConsumers" class="org.apache.archiva.repository.scanner.RepositoryContentConsumers" scope="prototype">
+ <constructor-arg>
+ <ref bean="archivaConfiguration"/>
+ </constructor-arg>
</bean>
-</beans> \ No newline at end of file
+</beans>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/InvalidScanConsumer.java
index 29e50a589..6e39db51a 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/InvalidScanConsumer.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,14 +19,14 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
+import java.util.Date;
+import java.util.List;
+
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
-import java.util.Date;
-import java.util.List;
-
/**
* InvalidScanConsumer
*
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/KnownScanConsumer.java
index 0ab62fe46..8498b4dd8 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/KnownScanConsumer.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,16 +19,16 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
+import org.apache.maven.archiva.consumers.ConsumerException;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+
/**
* ScanConsumer
*
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersStub.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersStub.java
new file mode 100644
index 000000000..bd47bce23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersStub.java
@@ -0,0 +1,42 @@
+package org.apache.archiva.repository.scanner;
+
+/*
+ * 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 java.util.Date;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+
+public class RepositoryContentConsumersStub
+ extends RepositoryContentConsumers
+{
+ public RepositoryContentConsumersStub(ArchivaConfiguration archivaConfiguration)
+ {
+ super(archivaConfiguration);
+ }
+
+ @Override
+ public Date getStartTime()
+ {
+ Date startTimeForTest = new Date( System.currentTimeMillis() );
+ startTimeForTest.setTime( 12345678 );
+
+ return startTimeForTest;
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java
index 86c4b5370..e6a5cc391 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,23 +19,24 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
+import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
+
import org.apache.commons.lang.SystemUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.easymock.MockControl;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -52,8 +53,36 @@ import org.springframework.core.io.Resource;
* @version $Id$
*/
public class RepositoryContentConsumersTest
- extends AbstractRepositoryLayerTestCase
+ extends PlexusInSpringTestCase
{
+ /**
+ * {@inheritDoc}
+ * @see org.codehaus.plexus.spring.PlexusInSpringTestCase#getSpringConfigLocation()
+ */
+ @Override
+ protected String getSpringConfigLocation()
+ {
+ return "org/apache/maven/archiva/repository/spring-context.xml";
+ }
+
+ protected ManagedRepositoryConfiguration createRepository( String id, String name, File location )
+ {
+ ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setLocation( location.getAbsolutePath() );
+ return repo;
+ }
+
+ protected RemoteRepositoryConfiguration createRemoteRepository( String id, String name, String url )
+ {
+ RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setUrl( url );
+ return repo;
+ }
+
private RepositoryContentConsumers lookupRepositoryConsumers()
throws Exception
{
@@ -307,7 +336,7 @@ public class RepositoryContentConsumersTest
knownControl.verify();
invalidControl.verify();
}
-
+
/**
* Create an OS specific version of the filepath.
* Provide path in unix "/" format.
@@ -321,19 +350,18 @@ public class RepositoryContentConsumersTest
return path;
}
- @SuppressWarnings("unchecked")
- public class MockApplicationContext implements ApplicationContext
+ private static Map convertToMap(List objects)
{
- private Map convertToMap(List objects)
+ HashMap map = new HashMap();
+ for (Object o : objects)
{
- HashMap map = new HashMap();
- for (Object o : objects)
- {
- map.put(o, o);
- }
- return map;
+ map.put(o, o);
}
+ return map;
+ }
+ public class MockApplicationContext implements ApplicationContext
+ {
private List<KnownRepositoryContentConsumer> knownRepositoryContentConsumer;
private List<InvalidRepositoryContentConsumer> invalidRepositoryContentConsumers;
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java
index 22cd183b0..2f8c6408e 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,13 +19,6 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
-import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase;
-
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
@@ -36,14 +29,49 @@ import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
/**
* RepositoryScannerTest
*
* @version $Id$
*/
public class RepositoryScannerTest
- extends AbstractRepositoryLayerTestCase
+ extends PlexusInSpringTestCase
{
+ /**
+ * {@inheritDoc}
+ * @see org.codehaus.plexus.spring.PlexusInSpringTestCase#getSpringConfigLocation()
+ */
+ @Override
+ protected String getSpringConfigLocation()
+ {
+ return "org/apache/maven/archiva/repository/spring-context.xml";
+ }
+
+ protected ManagedRepositoryConfiguration createRepository( String id, String name, File location )
+ {
+ ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setLocation( location.getAbsolutePath() );
+ return repo;
+ }
+
+ protected RemoteRepositoryConfiguration createRemoteRepository( String id, String name, String url )
+ {
+ RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setUrl( url );
+ return repo;
+ }
+
private static final String[] ARTIFACT_PATTERNS =
new String[]{"**/*.jar", "**/*.pom", "**/*.rar", "**/*.zip", "**/*.war", "**/*.tar.gz"};
@@ -134,7 +162,7 @@ public class RepositoryScannerTest
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(),
+ RepositoryScanStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(),
getTimestampAsMillis( "20061101.000000" ) );
assertNotNull( "Stats should not be null.", stats );
@@ -159,7 +187,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
@@ -185,7 +213,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(),
+ RepositoryScanStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(),
getTimestampAsMillis( "20061101.000000" ) );
assertNotNull( "Stats should not be null.", stats );
@@ -211,7 +239,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
@@ -269,7 +297,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
@@ -305,7 +333,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
@@ -341,7 +369,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
@@ -381,7 +409,7 @@ public class RepositoryScannerTest
invalidConsumers.add( badconsumer );
RepositoryScanner scanner = lookupRepositoryScanner();
- RepositoryContentStatistics stats =
+ RepositoryScanStatistics stats =
scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN );
assertNotNull( "Stats should not be null.", stats );
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/SampleKnownConsumer.java
index c2358d702..340be8b2b 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/SampleKnownConsumer.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.repository.scanner;
+package org.apache.archiva.repository.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,14 +19,14 @@ package org.apache.maven.archiva.repository.scanner;
* under the License.
*/
+import java.util.Date;
+import java.util.List;
+
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import java.util.Date;
-import java.util.List;
-
/**
* SampleKnownConsumer
*
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/CVS/Root b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/CVS/Root
new file mode 100644
index 000000000..2e65f24a6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/CVS/Root
@@ -0,0 +1 @@
+not a real CVS root - for testing exclusions
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/KEYS b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/KEYS
new file mode 100644
index 000000000..d3b34d5ad
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/KEYS
@@ -0,0 +1 @@
+test KEYS file \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid-1.0.jar
index e69de29bb..e69de29bb 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1/invalid-1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1/invalid-1
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/invalid/invalid/1/invalid-1
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/maven-metadata.xml
index b3baf545d..b3baf545d 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/maven-metadata.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
index caf5b6697..caf5b6697 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
index bb7570891..bb7570891 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
index caf5b6697..caf5b6697 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom
new file mode 100644
index 000000000..372560004
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <xdocDirectory>${basedir}/xdocs</xdocDirectory>
+ <resourcesDirectory>${basedir}/xdocs/resources</resourcesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5
new file mode 100644
index 000000000..7e4a5cfdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5
@@ -0,0 +1 @@
+69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1
new file mode 100644
index 000000000..b0a35015d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1
@@ -0,0 +1 @@
+e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom
new file mode 100644
index 000000000..8d5931c0e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/documentation</module>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5
new file mode 100644
index 000000000..9cebfeecc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5
@@ -0,0 +1 @@
+8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1
new file mode 100644
index 000000000..45d7111f6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1
@@ -0,0 +1 @@
+d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom
new file mode 100644
index 000000000..8d5931c0e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/documentation</module>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5
new file mode 100644
index 000000000..9cebfeecc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5
@@ -0,0 +1 @@
+8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1
new file mode 100644
index 000000000..45d7111f6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1
@@ -0,0 +1 @@
+d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom
new file mode 100644
index 000000000..8d5931c0e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/documentation</module>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
+ <module>modules/jws-api</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5
new file mode 100644
index 000000000..9cebfeecc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5
@@ -0,0 +1 @@
+8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1
new file mode 100644
index 000000000..45d7111f6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1
@@ -0,0 +1 @@
+d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml
new file mode 100644
index 000000000..3d2b170fc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?><metadata>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <timestamp>20070802.113139</timestamp>
+ <buildNumber>29</buildNumber>
+ </snapshot>
+ <lastUpdated>20070802113139</lastUpdated>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5
new file mode 100644
index 000000000..f39e1f745
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5
@@ -0,0 +1 @@
+f68494b20d262a4974d61e2911f90291 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1
new file mode 100644
index 000000000..ebf6c8ce2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1
@@ -0,0 +1 @@
+6d0399f05e374923a3929683b4176fe67d8ed08f \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom
new file mode 100644
index 000000000..31405768a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!--+
+ | This is the main Maven file that contains all global settings, management and information.
+ | @version $Id$
+ +-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>1</version>
+ </parent>
+
+ <packaging>pom</packaging>
+
+ <groupId>org.apache.cocoon</groupId>
+ <artifactId>cocoon</artifactId>
+ <version>1</version>
+
+ <name>Apache Cocoon</name>
+ <url>http://cocoon.apache.org</url>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <!--modules>
+ <module>blocks</module>
+ <module>commons</module>
+ <module>core</module>
+ <module>tools</module>
+ </modules-->
+ <repositories>
+ <repository>
+ <id>central</id>
+ <name>Maven central repository</name>
+ <url>http://ibiblio.org/maven2</url>
+ </repository>
+ <repository>
+ <id>apache.snapshot</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://svn.apache.org/maven-snapshot-repository</url>
+ </repository>
+ <repository>
+ <id>apache-cvs</id>
+ <name>Apache Maven Repository</name>
+ <url>http://svn.apache.org/repository</url>
+ <layout>legacy</layout>
+ </repository>
+ </repositories>
+ <!-- Activate this element if you want to use snapshot versions of plugins
+ <pluginRepositories>
+ <pluginRepository>
+ <id>snapshots</id>
+ <url>http://snapshots.maven.codehaus.org/maven2</url>
+ </pluginRepository>
+ </pluginRepositories>
+ -->
+ <organization>
+ <name>The Apache Software Foundation</name>
+ <url>http://www.apache.org/</url>
+ </organization>
+ <developers>
+ <developer>
+ <id>crossley</id>
+ <name>David Crossley</name>
+ <email>crossley@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org/</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+10</timezone>
+ </developer>
+ <developer>
+ <id>bdelacretaz</id>
+ <name>Bertrand Delacretaz</name>
+ <email>bdelacretaz@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>danielf</id>
+ <name>Daniel Fagerstrom</name>
+ <email>danielf@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>antonio</id>
+ <name>Antonio Gallardo</name>
+ <email>antonio@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <id>lgawron</id>
+ <name>Leszek Gawron</name>
+ <email>lgawron@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>joerg</id>
+ <name>Jorg Heinicke</name>
+ <email>joerg@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <timezone>+1</timezone>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </developer>
+ <developer>
+ <id>jheymans</id>
+ <name>Jorg Heymans</name>
+ <email>jheymans@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>anathaniel</id>
+ <name>Alfred Nathaniel</name>
+ <email>anathaniel@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>giacomo</id>
+ <name>Giacomo Pati</name>
+ <email>giacomo@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>reinhard</id>
+ <name>Reinhard Poetz</name>
+ <email>reinhard@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>jbq</id>
+ <name>Jean-Baptiste Quenot</name>
+ <email>jbq@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>gianugo</id>
+ <name>Gianugo Rabellino</name>
+ <email>gianugo@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>cziegeler</id>
+ <name>Carsten Ziegeler</name>
+ <email>cziegeler@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>vgritsenko</id>
+ <name>Vadim Gritsenko</name>
+ <email>vgritsenko@apache.org</email>
+ <organization>ASF</organization>
+ <organizationUrl>http://www.apache.org</organizationUrl>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>-5</timezone>
+ </developer>
+ </developers>
+ <issueManagement>
+ <system>jira</system>
+ <url>https://issues.apache.org/jira/browse/COCOON</url>
+ </issueManagement>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://cocoon.zones.apache.org:12000/continuum/servlet/continuum</url>
+ <notifiers>
+ <notifier>
+ <type>mail</type>
+ <configuration>
+ <address>dev@cocoon.apache.org</address>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Cocoon User List</name>
+ <subscribe>users-subscribe@cocoon.apache.org</subscribe>
+ <unsubscribe>users-unsubscribe@cocoon.apache.org</unsubscribe>
+ <post>users@cocoon.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/cocoon-users</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/users@cocoon.apache.org/</otherArchive>
+ <otherArchive>http://marc.theaimsgroup.com/?l=xml-cocoon-user</otherArchive>
+ <otherArchive>http://news.gmane.org/gmane.text.xml.cocoon.user</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Cocoon Developer List</name>
+ <subscribe>dev-subscribe@cocoon.apache.org</subscribe>
+ <unsubscribe>dev-unsubscribe@cocoon.apache.org</unsubscribe>
+ <post>dev@cocoon.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/cocoon-dev</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/dev@cocoon.apache.org/</otherArchive>
+ <otherArchive>http://marc.theaimsgroup.com/?l=xml-cocoon-dev</otherArchive>
+ <otherArchive>http://news.gmane.org/gmane.text.xml.cocoon.dev</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Cocoon Documentation List</name>
+ <subscribe>docs-subscribe@cocoon.apache.org</subscribe>
+ <unsubscribe>docs-unsubscribe@cocoon.apache.org</unsubscribe>
+ <post>docs@cocoon.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/cocoon-docs</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/dev@cocoon.apache.org/</otherArchive>
+ <otherArchive>http://marc.theaimsgroup.com/?l=xml-cocoon-docs</otherArchive>
+ <otherArchive>http://news.gmane.org/gmane.text.xml.cocoon.docs</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Cocoon Subversion Repository List</name>
+ <subscribe>cvs-subscribe@cocoon.apache.org</subscribe>
+ <unsubscribe>cvs-unsubscribe@cocoon.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/cocoon-cvs</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/cvs@cocoon.apache.org/</otherArchive>
+ <otherArchive>http://marc.theaimsgroup.com/?l=xml-cocoon-cvs</otherArchive>
+ <otherArchive>http://news.gmane.org/gmane.text.xml.cocoon.cvs</otherArchive>
+ </otherArchives>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1</developerConnection>
+ <url>https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-maven</id>
+ <name>release repository</name>
+ <url>scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-maven-snapshot</id>
+ <name>snapshot repository</name>
+ <url>scpexe://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh-external</artifactId>
+ <version>1.0-alpha-6</version>
+ </extension>
+ </extensions>
+ <!--
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ -->
+ <plugins>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/cocoon/tags</tagBase>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>dependencies</report>
+ <report>project-team</report>
+ <report>mailing-list</report>
+ <report>cim</report>
+ <report>issue-tracking</report>
+ <report>license</report>
+ <report>scm</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
index 202a0a448..202a0a448 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
index 54d190b23..54d190b23 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
index fa5f8f6c8..fa5f8f6c8 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
index c3034e820..c3034e820 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
index ae14cd7eb..ae14cd7eb 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
index 54d190b23..54d190b23 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..d48ebf7a8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-applet</artifactId>
+ <name>Archiva Applet</name>
+ <description>
+ Applet for performing local operations on files such as creating a checksum of an artifact
+ before uploading it.
+ </description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <keystore>src/keystore/keystore</keystore>
+ <alias>mykey</alias>
+ <storepass>password</storepass>
+ <keypass>password</keypass>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <instrumentation>
+ <!-- TODO: should this module have tests? -->
+ <excludes>
+ <exclude>**/**</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..cd51f1edc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>archiva-base</artifactId>
+ <name>Archiva Base</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>archiva-common</module>
+ <module>archiva-configuration</module>
+ <module>archiva-consumers</module>
+ <module>archiva-indexer</module>
+ <module>archiva-model</module>
+ <!-- <module>archiva-proxy</module> -->
+ <module>archiva-repository-layer</module>
+ <module>archiva-xml-tools</module>
+ </modules>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..115bc99ea
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!--
+ ~ 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.
+ -->
+
+<project>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-cli</artifactId>
+ <name>Archiva Command Line Client</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-cli</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptor>src/main/assembly/archiva-cli-assembly.xml</descriptor>
+ <archive>
+ <manifest>
+ <mainClass>org.apache.maven.archiva.cli.ArchivaCli</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..17a20abd5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-common</artifactId>
+ <name>Archiva Base :: Common</name>
+ <dependencies>
+ <!-- TO OTHER DEVELOPERS:
+ This module should depend on NO OTHER ARCHIVA MODULES.
+ If you feel tempted to add one, discuss it first in the
+ archiva-dev@maven.apache.org mailing-list.
+ joakime@apache.org
+ -->
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <!--
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <!--
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>test-jar</id>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ -->
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <!--
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-descriptors</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ -->
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..790d0cfa4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-configuration</artifactId>
+ <name>Archiva Base :: Configuration</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-api</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-commons</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- Test Deps -->
+ <dependency>
+ <groupId>easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>1.2_Java1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-15-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>java</goal>
+ <goal>registry-reader</goal>
+ <goal>registry-writer</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <version>1.0.0</version>
+ <model>src/main/mdo/configuration.mdo</model>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <instrumentation>
+ <!-- exclude generated -->
+ <excludes>
+ <exclude>org/apache/maven/archiva/configuration/io/**</exclude>
+ <exclude>org/apache/maven/archiva/configuration/*RepositoryConfiguration.*</exclude>
+ <exclude>org/apache/maven/archiva/configuration/Configuration.*</exclude>
+ <exclude>org/apache/maven/archiva/configuration/Proxy.*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..f331ed074
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-consumers</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>archiva-consumer-api</artifactId>
+ <name>Archiva Consumer API</name>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..8969b9ed3
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>archiva-consumers</artifactId>
+ <name>Archiva Consumers</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>archiva-consumer-api</module>
+ <module>archiva-core-consumers</module>
+ <!--
+ <module>archiva-database-consumers</module>
+ <module>archiva-lucene-consumers</module>
+ <module>archiva-signature-consumers</module>
+ -->
+ </modules>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..49bde7bd2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-converter</artifactId>
+ <name>Archiva Repository Converter</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-i18n</artifactId>
+ <version>1.0-beta-6</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <!-- TEST DEPS -->
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.7.3.3</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- Needed for PlexusTestCase -->
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..182578f57
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-consumers</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>archiva-core-consumers</artifactId>
+ <name>Archiva Consumers :: Core Consumers</name>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-scheduled/pom.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom
index 0c947db53..18b98fc7b 100644
--- a/archiva-modules/archiva-scheduled/pom.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom
@@ -18,76 +18,73 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-modules</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <artifactId>archiva</artifactId>
+ <groupId>org.apache.maven.archiva</groupId>
+ <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>archiva-scheduled</artifactId>
- <name>Archiva Base :: Scheduled Tasks</name>
+ <artifactId>archiva-core</artifactId>
+ <name>Archiva Core</name>
<dependencies>
<dependency>
- <groupId>org.apache.archiva</groupId>
+ <groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-configuration</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-database</artifactId>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-repository-layer</artifactId>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-reports-standard</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-taskqueue</artifactId>
+ <artifactId>plexus-component-api</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-quartz</artifactId>
+ <version>1.0-alpha-3</version>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-spring</artifactId>
- <scope>test</scope>
+ <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-component-api</artifactId>
+ <artifactId>plexus-taskqueue</artifactId>
+ <version>1.0-alpha-6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.codehaus.plexus.registry</groupId>
- <artifactId>plexus-registry-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.sonatype.nexus</groupId>
- <artifactId>nexus-indexer</artifactId>
- </dependency>
- <!-- Test Dependencies -->
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-database-consumers</artifactId>
+ <artifactId>plexus-registry-commons</artifactId>
+ <version>1.0-SNAPSHOT</version>
<scope>test</scope>
- </dependency>
+ </dependency>
+ <!-- TEST DEPS -->
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
+ <version>1.7.3.3</version>
<scope>test</scope>
</dependency>
+ <!-- needed for PlexusTestCase -->
<dependency>
- <groupId>org.codehaus.plexus.registry</groupId>
- <artifactId>plexus-registry-commons</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
@@ -95,17 +92,17 @@
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-metadata</artifactId>
+ <artifactId>plexus-maven-plugin</artifactId>
<executions>
<execution>
<id>merge</id>
<goals>
- <goal>merge-metadata</goal>
+ <goal>merge-descriptors</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
- <descriptor>${project.build.outputDirectory}/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor>
</descriptors>
</configuration>
</execution>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..8a96e39c5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-discoverer</artifactId>
+ <name>Archiva Discoverer</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..7d77d445f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-indexer</artifactId>
+ <name>Archiva Base :: Indexer</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>2.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <check>
+ <!-- TODO: increase coverage -->
+ <totalLineRate>80</totalLineRate>
+ <totalBranchRate>80</totalBranchRate>
+ </check>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..9c9053a3c
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-model</artifactId>
+ <name>Archiva Base :: Model</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-test-A</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-test-B</artifactId>
+ <version>${parent.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jdo</groupId>
+ <artifactId>jdo2-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-15-SNAPSHOT</version>
+ <configuration>
+ <version>1.0.0</version>
+ <packageWithVersion>false</packageWithVersion>
+ <model>src/main/mdo/archiva-base.xml</model>
+ </configuration>
+ <executions>
+ <execution>
+ <id>archiva-base</id>
+ <goals>
+ <goal>java</goal>
+ <goal>xsd</goal>
+ <goal>jpox-jdo-mapping</goal>
+ <goal>jpox-metadata-class</goal>
+ <!--
+ <goal>xpp3-writer</goal>
+ <goal>xpp3-reader</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jpox-maven-plugin</artifactId>
+ <version>1.1.6</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.2.1.6</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>create-ddl</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>schema-create</goal>
+ </goals>
+ <configuration>
+ <outputFile>${basedir}/target/classes/org/apache/maven/archiva/model/schema.ddl</outputFile>
+ <toolProperties>
+ <property>
+ <name>javax.jdo.option.ConnectionDriverName</name>
+ <value>org.apache.derby.jdbc.EmbeddedDriver</value>
+ </property>
+ <property>
+ <name>javax.jdo.option.ConnectionURL</name>
+ <value>jdbc:derby:target/jdo-schema-create;create=true</value>
+ </property>
+ <property>
+ <name>javax.jdo.option.ConnectionUserName</name>
+ <value>sa</value>
+ </property>
+ <property>
+ <name>javax.jdo.option.ConnectionPassword</name>
+ <value></value>
+ </property>
+ <property>
+ <name>log4j.configuration</name>
+ <value>${basedir}/src/test/resources/log4j.xml</value>
+ </property>
+ <property>
+ <name>org.jpox.autoCreateTables</name>
+ <value>true</value>
+ </property>
+ </toolProperties>
+ </configuration>
+ </execution>
+ <execution>
+ <id>enhance</id>
+ <goals>
+ <goal>enhance</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <instrumentation>
+ <!-- exclude generated -->
+ <excludes>
+ <exclude>org/apache/maven/archiva/reporting/model/**</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..970098384
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>4</version>
+ <relativePath>../pom/maven/pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva</name>
+ <version>1.0-SNAPSHOT</version>
+ <description>
+ Archiva is an application for managing one or more remote repositories, including
+ administration, artifact handling,
+ browsing and searching.
+ </description>
+ <url>http://maven.apache.org/archiva</url>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MRM</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Maven Archiva User List</name>
+ <subscribe>archiva-users-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-users@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Developer List</name>
+ <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-dev@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Commits List</name>
+ <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-commits@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection>
+ <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url>
+ </site>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.3</version>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-idea-plugin</artifactId>
+ <configuration>
+ <jdkLevel>1.4</jdkLevel>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <modules>
+ <module>archiva-api</module>
+ <module>archiva-base</module>
+ <module>archiva-database</module>
+ <module>archiva-reporting</module>
+ <module>archiva-web</module>
+ <module>archiva-cli</module>
+ <module>maven-meeper</module>
+ </modules>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-web</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-18</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ <version>1.0-alpha-18</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ <version>2.0.5-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-reports-standard</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-database</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-database</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-utils</artifactId>
+ <version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <version>${archiva.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-rbac-profile</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web</artifactId>
+ <version>${plexus-security.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-integration</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-taglib</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-user-manager</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-keystore</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-provider-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-cached</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-authorizer</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-keys-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.3.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <configLocation>config/maven_checks.xml</configLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>changelog-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <!-- TODO: choose appropriate rulesets -->
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>ci</id>
+ <activation>
+ <property>
+ <name>enableCiProfile</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: after rules are set
+ <goal>check</goal>
+ -->
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style)
+ <goal>check</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <check>
+ <totalLineRate>77</totalLineRate>
+ <totalBranchRate>95</totalBranchRate>
+ </check>
+
+ <instrumentation>
+ <excludes>
+ <exclude>**/*$*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>check</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <repositories>
+ <repository>
+ <id>codehaus.org</id>
+ <url>http://repository.codehaus.org</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <!-- TODO: remove once ehcache, p-sec, registry, webdav, xwork, naming released -->
+ <repository>
+ <id>snapshots.codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <!-- TODO: remove once modello is released -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>snapshots.codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <properties>
+ <archiva.version>1.0-SNAPSHOT</archiva.version>
+ <maven.version>2.0.5</maven.version>
+ <wagon.version>1.0-beta-2</wagon.version>
+ <plexus-security.version>1.0-alpha-11-SNAPSHOT</plexus-security.version>
+ </properties>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..21edbff05
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>archiva</artifactId>
+ <groupId>org.apache.maven.archiva</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-plexus-application</artifactId>
+ <packaging>plexus-application</packaging>
+ <name>Archiva Plexus Application</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-appserver-maven-plugin</artifactId>
+ <version>2.0-alpha-7</version>
+ <extensions>true</extensions>
+ <configuration>
+ <applicationConfiguration>src/conf/application.xml</applicationConfiguration>
+ <configurationsDirectory>src/conf</configurationsDirectory>
+ <configurationProperties>src/plexus.properties</configurationProperties>
+ <applicationName>archiva</applicationName>
+ <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration>
+ <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties>
+ <runtimePath>target/plexus-archiva-runtime</runtimePath>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <type>war</type>
+ </dependency>
+ </dependencies>
+ <!-- For filtering -->
+ <properties>
+ <archivaVersion>${project.version}</archivaVersion>
+ </properties>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..1c675dc62
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-plexus-runtime</artifactId>
+ <name>Archiva Runtime Generator</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-appserver-host</artifactId>
+ <version>2.0-alpha-7</version>
+ </dependency>
+ <!-- Services -->
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-appserver-service-jetty</artifactId>
+ <version>2.0-alpha-7</version>
+ <type>plexus-service</type>
+ </dependency>
+ <!-- Plexus applications -->
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-plexus-application</artifactId>
+ <version>${project.version}</version>
+ <type>plexus-application</type>
+ </dependency>
+
+ <!-- Additional Core Artifacts -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.8</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-naming</artifactId>
+ <version>1.0-alpha-3-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-appserver-maven-plugin</artifactId>
+ <version>2.0-alpha-7</version>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>assemble-runtime</goal>
+ <goal>add-services</goal>
+ <goal>add-apps</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration>
+ <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties>
+ <runtimePath>target/plexus-archiva-runtime</runtimePath>
+ <additionalCoreArtifacts>
+ <additionalCoreArtifact>commons-logging:commons-logging-api</additionalCoreArtifact>
+ <additionalCoreArtifact>log4j:log4j</additionalCoreArtifact>
+ <additionalCoreArtifact>org.apache.derby:derby</additionalCoreArtifact>
+ <additionalCoreArtifact>org.codehaus.plexus:plexus-naming</additionalCoreArtifact>
+ <additionalCoreArtifact>commons-pool:commons-pool</additionalCoreArtifact>
+ <additionalCoreArtifact>commons-dbcp:commons-dbcp</additionalCoreArtifact>
+ <additionalCoreArtifact>commons-collections:commons-collections</additionalCoreArtifact>
+ <additionalCoreArtifact>directory-naming:naming-core</additionalCoreArtifact>
+ <additionalCoreArtifact>directory-naming:naming-factory</additionalCoreArtifact>
+ <additionalCoreArtifact>directory-naming:naming-java</additionalCoreArtifact>
+ <additionalCoreArtifact>directory-naming:naming-config</additionalCoreArtifact>
+ <additionalCoreArtifact>javax.mail:mail</additionalCoreArtifact>
+ <additionalCoreArtifact>javax.activation:activation</additionalCoreArtifact>
+ </additionalCoreArtifacts>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <descriptor>src/main/assembly/bin.xml</descriptor>
+ <finalName>archiva</finalName>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..23488ee0a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-proxy</artifactId>
+ <name>Archiva Proxy</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>1.2_Java1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..24eb19954
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-reports-standard</artifactId>
+ <name>Archiva Standard Reports</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-jdo2</artifactId>
+ <version>1.0-alpha-8</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jpox</groupId>
+ <artifactId>jpox</artifactId>
+ <version>1.1.6</version>
+ <scope>compile</scope>
+ <exclusions>
+ <!-- targeting JDK 1.4 we don't need this -->
+ <exclusion>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc-stdext</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- TEST DEPS -->
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.7.3.3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-14-SNAPSHOT</version>
+ <configuration>
+ <version>1.0.0</version>
+ <packageWithVersion>false</packageWithVersion>
+ <model>src/main/mdo/reporting.mdo</model>
+ </configuration>
+ <executions>
+ <execution>
+ <id>modello-java</id>
+ <goals>
+ <goal>java</goal>
+ <goal>jpox-metadata-class</goal>
+ <!--
+ <goal>xpp3-writer</goal>
+ <goal>xpp3-reader</goal>
+ -->
+ </goals>
+ </execution>
+ <execution>
+ <id>jpox-jdo-mapping</id>
+ <goals>
+ <goal>jpox-jdo-mapping</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/classes/org/apache/maven/archiva/reporting/model/</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jpox-maven-plugin</artifactId>
+ <version>1.1.6-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>enhance</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <instrumentation>
+ <!-- exclude generated -->
+ <excludes>
+ <exclude>org/apache/maven/archiva/reporting/model/**</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..6ec87f431
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-repository-layer</artifactId>
+ <name>Archiva Repository Interface Layer</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-xml-tools</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.cache</groupId>
+ <artifactId>plexus-cache-api</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.cache</groupId>
+ <artifactId>plexus-cache-ehcache</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ <!--
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-descriptors</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..78cbd1282
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>archiva</artifactId>
+ <groupId>org.apache.maven.archiva</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-security</artifactId>
+ <name>Archiva Security Configuration</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-rbac-profile</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..8304d2dd0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-webapp</artifactId>
+ <packaging>war</packaging>
+ <name>Archiva Web Application</name>
+ <dependencies>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>sitemesh</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>taglibs</groupId>
+ <artifactId>standard</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-log4j-logging</artifactId>
+ <version>1.1-alpha-2</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.0.4</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>webwork</artifactId>
+ <version>2.2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-commons</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <!-- TODO: actually, just exclude from WAR plugin -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-dependency-tree</artifactId>
+ <version>1.0-alpha-2</version>
+ </dependency>
+ <!-- Plexus Security Dependencies -->
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web</artifactId>
+ <type>war</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-taglib</artifactId>
+ </dependency>
+ <!-- Other dependencies -->
+ <dependency>
+ <groupId>org.codehaus.plexus.webdav</groupId>
+ <artifactId>plexus-webdav-simple</artifactId>
+ <version>1.0-alpha-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-xwork-integration</artifactId>
+ <version>1.0-alpha-5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.3.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.1</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.1.1</version>
+ <!-- This configuration is added to cleanup from war:inplace -->
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${basedir}/src/main/webapp</directory>
+ <includes>
+ <!-- TODO: META-INF shouldn't be required, seems to be an issue with the current war plugin -->
+ <include>META-INF</include>
+ <include>images/pss</include>
+ <!-- Images from other wars -->
+ <include>template/pss</include>
+ <!-- Templates from other wars -->
+ <include>WEB-INF/classes</include>
+ <!-- Classes and Resources from other wars -->
+ <include>WEB-INF/lib</include>
+ <!-- Dependencies from other wars -->
+ <include>WEB-INF/database</include>
+ <!-- Database location configured in application.xml -->
+ <include>WEB-INF/logs</include>
+ <!-- Log file location specified in application.xml -->
+ <include>pss</include>
+ <!-- plexus-security css and javascript -->
+ <include>css/pss</include>
+ <include>WEB-INF/jsp/pss</include>
+ <!-- plexus-security jsps -->
+ <include>WEB-INF/template/pss</include>
+ <!-- plexus-security xwork templates -->
+ <include>WEB-INF/logs</include>
+ <!-- Directory created by jetty:run -->
+ <include>WEB-INF/temp</include>
+ <!-- Directory created by jetty:run -->
+ </includes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.0.1</version>
+ <configuration>
+ <!-- Some versions of maven-war-plugin (snapshots) have this incorrectly defaulted to true.
+ Specifically setting this to false to avoid accidental jar file creation. -->
+ <archiveClasses>false</archiveClasses>
+ <dependentWarExcludes>META-INF/**,WEB-INF/web.xml,WEB-INF/classes/xwork.xml</dependentWarExcludes>
+ </configuration>
+ <!-- TODO: would be good to make the jetty plugin aware of these and remove the below -->
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <!-- Needed to get the plexus-security war overlay to do its thing before jetty:run -->
+ <goal>inplace</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.1</version>
+ <configuration>
+ <scanIntervalSeconds>10</scanIntervalSeconds>
+ <contextPath>/</contextPath>
+ <jettyEnvXml>src/jetty-env.xml</jettyEnvXml>
+ <connectors>
+ <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+ <port>9091</port>
+ <maxIdleTime>60000</maxIdleTime>
+ </connector>
+ </connectors>
+ <systemProperties>
+ <systemProperty>
+ <name>appserver.base</name>
+ <value>${project.build.directory}/appserver-base</value>
+ </systemProperty>
+ <systemProperty>
+ <name>derby.system.home</name>
+ <value>${project.build.directory}/appserver-base/logs</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.3.1</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>dependency-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>${project.version}</version>
+ <outputDirectory>src/main/webapp</outputDirectory>
+ <destFileName>archiva-applet.jar</destFileName>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <configuration>
+ <roleDefaults>
+ <roleDefault>
+ <role>com.opensymphony.xwork.Action</role>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ </roleDefault>
+ </roleDefaults>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <instrumentation>
+ <excludes>
+ <exclude>**/**</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..efa42d3f0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-xml-tools</artifactId>
+ <name>Archiva Base :: XML Tools</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+ </dependencies>
+ <!--
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-descriptors</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ -->
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom
new file mode 100644
index 000000000..cf8e32963
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>4</version>
+ <relativePath>../pom/maven/pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva</name>
+ <version>1.0-SNAPSHOT</version>
+ <description>
+ Archiva is an application for managing one or more remote repositories, including
+ administration, artifact handling,
+ browsing and searching.
+ </description>
+ <url>http://maven.apache.org/archiva</url>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MRM</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Maven Archiva User List</name>
+ <subscribe>archiva-users-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-users@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Developer List</name>
+ <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-dev@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Commits List</name>
+ <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-commits@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection>
+ <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url>
+ </site>
+ </distributionManagement>
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh-external</artifactId>
+ <version>1.0-alpha-5</version>
+ </extension>
+ </extensions>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ <goal>merge-descriptors</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-idea-plugin</artifactId>
+ <configuration>
+ <jdkLevel>1.4</jdkLevel>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <modules>
+ <module>archiva-applet</module>
+ <module>archiva-converter</module>
+ <module>archiva-discoverer</module>
+ <module>archiva-reports-standard</module>
+ <module>archiva-indexer</module>
+ <module>archiva-webapp</module>
+ <module>archiva-proxy</module>
+ <module>archiva-core</module>
+ <module>archiva-configuration</module>
+ <module>maven-meeper</module>
+ <module>archiva-repository-layer</module>
+ <module>archiva-plexus-application</module>
+ <module>archiva-plexus-runtime</module>
+ <module>archiva-security</module>
+ <module>archiva-cli</module>
+ </modules>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-10</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ <version>2.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-reports-standard</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <version>${pom.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-rbac-profile</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web</artifactId>
+ <version>${plexus-security.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-integration</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-taglib</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-user-manager</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-keystore</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-provider-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-authorizer</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-keys-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <configLocation>config/maven_checks.xml</configLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>changelog-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <!-- TODO: choose appropriate rulesets -->
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>ci</id>
+ <activation>
+ <property>
+ <name>enableCiProfile</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: after rules are set
+ <goal>check</goal>
+ -->
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style)
+ <goal>check</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <check>
+ <totalLineRate>77</totalLineRate>
+ <totalBranchRate>95</totalBranchRate>
+ </check>
+
+ <instrumentation>
+ <excludes>
+ <exclude>**/*$*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>check</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <!-- TODO: remove once xwork integration, plexus container is released -->
+ <repositories>
+ <repository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+
+ <!-- See: http://www.nabble.com/NoClassDefFoundError-from-shared-in-project-info-reports-tf2678299s177.html#a7489595 -->
+ <pluginRepository>
+ <id>apache.org</id>
+ <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <properties>
+ <maven.version>2.0.4</maven.version>
+ <wagon.version>1.0-beta-1</wagon.version>
+ <plexus-security.version>1.0-alpha-6-SNAPSHOT</plexus-security.version>
+ </properties>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml
new file mode 100644
index 000000000..ac3c2e716
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><project>
+ <bannerLeft>
+ <name>Maven</name>
+ <src>http://maven.apache.org/images/apache-maven-project-2.png</src>
+ <href>http://maven.apache.org/</href>
+ </bannerLeft>
+ <bannerRight>
+ <src>images/archiva-logo-banner.jpg</src>
+ </bannerRight>
+ <publishDate format="dd MMM yyyy" />
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-stylus-skin</artifactId>
+ </skin>
+ <body>
+ <links>
+ <item name="Maven" href="http://maven.apache.org/" />
+ </links>
+ <menu name="Documentation">
+ <item name="Welcome" href="/index.html" />
+ <item name="Getting Started" href="/guides/getting-started/index.html" />
+ <item name="FAQ" href="http://docs.codehaus.org/display/MAVENUSER/Archiva+FAQ" />
+ <item name="Maven Configuration" href="/guides/getting-started/maven-configuration.html" />
+ <item name="Developing" href="/guides/developing/index.html" />
+ </menu>
+ <menu inherit="bottom" ref="reports" />
+ </body>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom
new file mode 100644
index 000000000..31df31eda
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>4</version>
+ <relativePath>../pom/maven/pom.xml</relativePath>
+ </parent>
+ <prerequisites>
+ <maven>2.0.5</maven>
+ </prerequisites>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva</name>
+ <version>1.0-SNAPSHOT</version>
+ <description>
+ Archiva is an application for managing one or more remote repositories, including
+ administration, artifact handling,
+ browsing and searching.
+ </description>
+ <url>http://maven.apache.org/archiva</url>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MRM</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Maven Archiva User List</name>
+ <subscribe>archiva-users-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-users@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Developer List</name>
+ <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-dev@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Commits List</name>
+ <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-commits@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection>
+ <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url>
+ </site>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.3</version>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-idea-plugin</artifactId>
+ <configuration>
+ <jdkLevel>1.4</jdkLevel>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <modules>
+ <module>archiva-applet</module>
+ <module>archiva-converter</module>
+ <module>archiva-common</module>
+ <module>archiva-discoverer</module>
+ <module>archiva-reports-standard</module>
+ <module>archiva-indexer</module>
+ <module>archiva-webapp</module>
+ <module>archiva-proxy</module>
+ <module>archiva-core</module>
+ <module>archiva-configuration</module>
+ <module>maven-meeper</module>
+ <module>archiva-repository-layer</module>
+ <module>archiva-plexus-application</module>
+ <module>archiva-plexus-runtime</module>
+ <module>archiva-security</module>
+ <module>archiva-cli</module>
+ </modules>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-app-configuration-web</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-17</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ <version>1.0-alpha-17</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ <version>2.0.5-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <!--
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ <version>${pom.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-reports-standard</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-utils</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <version>${pom.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-rbac-profile</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web</artifactId>
+ <version>${plexus-security.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-integration</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-taglib</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-user-manager</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-keystore</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-provider-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-cached</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-authorizer</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-keys-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.3.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <configLocation>config/maven_checks.xml</configLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>changelog-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <!-- TODO: choose appropriate rulesets -->
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>ci</id>
+ <activation>
+ <property>
+ <name>enableCiProfile</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: after rules are set
+ <goal>check</goal>
+ -->
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style)
+ <goal>check</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <check>
+ <totalLineRate>77</totalLineRate>
+ <totalBranchRate>95</totalBranchRate>
+ </check>
+
+ <instrumentation>
+ <excludes>
+ <exclude>**/*$*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>check</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <repositories>
+ <repository>
+ <id>codehaus.org</id>
+ <url>http://repository.codehaus.org</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <!-- TODO: remove once ehcache, p-sec, registry, webdav, xwork, naming released -->
+ <repository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <!-- TODO: remove once modello is released -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <properties>
+ <maven.version>2.0.5</maven.version>
+ <wagon.version>1.0-beta-2</wagon.version>
+ <plexus-security.version>1.0-alpha-10-SNAPSHOT</plexus-security.version>
+ </properties>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom
new file mode 100644
index 000000000..5a29f6117
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>discovery</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
index 8ce7fc7bb..8ce7fc7bb 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom
new file mode 100644
index 000000000..132d9d736
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ <relativePath>../asf/pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>4</version>
+ <packaging>pom</packaging>
+ <name>Apache Maven</name>
+ <description>
+ Maven is a software project management and comprehension tool. Based on the concept of a project object model
+ (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
+ </description>
+ <url>http://maven.apache.org/</url>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MPA</url>
+ </issueManagement>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://maven.zones.apache.org:8080/continuum</url>
+ <notifiers>
+ <notifier>
+ <type>mail</type>
+ <configuration>
+ <address>notifications@maven.apache.org</address>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <inceptionYear>2002</inceptionYear>
+ <mailingLists>
+ <mailingList>
+ <name>Maven Announcements List</name>
+ <post>announce@maven.apache.org</post>
+ <subscribe>announce-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>announce-unsubscribe@maven.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-announce/</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Issues List</name>
+ <post>issues@maven.apache.org</post>
+ <subscribe>issues-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>issues-unsubscribe@maven.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-issues/</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Notifications List</name>
+ <post>notifications@maven.apache.org</post>
+ <subscribe>notifications-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>notifications-unsubscribe@maven.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-notifications/</archive>
+ </mailingList>
+ </mailingLists>
+
+ <developers>
+ <developer>
+ <id>jvanzyl</id>
+ <name>Jason van Zyl</name>
+ <email>jason@maven.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Chair</role>
+ </roles>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
+ <id>brett</id>
+ <name>Brett Porter</name>
+ <email>brett@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+10</timezone>
+ </developer>
+ <developer>
+ <id>evenisse</id>
+ <name>Emmanuel Venisse</name>
+ <email>evenisse@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>kenney</id>
+ <name>Kenney Westerhof</name>
+ <email>kenney@apache.org</email>
+ <organization>Neonics</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ </developer>
+ <developer>
+ <id>snicoll</id>
+ <name>Stephane Nicoll</name>
+ <email>snicoll@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>vmassol</id>
+ <name>Vincent Massol</name>
+ <email>vmassol@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>fgiust</id>
+ <name>Fabrizio Giustina</name>
+ <email>fgiust@apache.org</email>
+ <organization>openmind</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>epunzalan</id>
+ <name>Edwin Punzalan</name>
+ <email>epunzalan@mergere.com</email>
+ <organization>Mergere</organization>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+8</timezone>
+ </developer>
+ <developer>
+ <id>mperham</id>
+ <name>Mike Perham</name>
+ <email>mperham@gmail.com</email>
+ <organization>IBM</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <id>jdcasey</id>
+ <name>John Casey</name>
+ <email>jdcasey@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
+ <id>trygvis</id>
+ <name>Trygve Laugstol</name>
+ <email>trygvis@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>vsiveton</id>
+ <name>Vincent Siveton</name>
+ <email>vsiveton@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
+ <id>carlos</id>
+ <name>Carlos Sanchez</name>
+ <email>carlos@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>dennisl</id>
+ <name>Dennis Lundberg</name>
+ <email>dennisl@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ </developers>
+
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scp://people.apache.org/www/maven.apache.org</url>
+ </site>
+ </distributionManagement>
+
+<!-- Disabled until projects have been made to comply
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+-->
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <configLocation>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml</configLocation>
+ <headerLocation>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven-header.txt</headerLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <links>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+ <link>http://jakarta.apache.org/commons/pool/apidocs/</link>
+ <link>http://www.junit.org/junit/javadoc/</link>
+ <link>http://logging.apache.org/log4j/docs/api/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://jakarta.apache.org/velocity/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4</developerConnection>
+ <url>http://svn.apache.org/viewvc/maven/pom/maven/tags/maven-parent-4</url>
+ </scm>
+</project>
+
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
new file mode 100644
index 000000000..b6caacf5e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
@@ -0,0 +1 @@
+0fc039b0bd4d17d7c147a30e1d83994629c5297c \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom
new file mode 100644
index 000000000..6ab57d162
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom
@@ -0,0 +1,29 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>C</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <!-- default packaging is jar -->
+ <!--packaging>jar</packaging-->
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom
new file mode 100644
index 000000000..a959980df
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom
@@ -0,0 +1,29 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>C</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <!-- specified packaging -->
+ <packaging>jar</packaging>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml
new file mode 100644
index 000000000..89de35f4e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>samplejar</artifactId>
+ <version>6.0-SNAPSHOT</version>
+ <versioning>
+ <release>2.0</release>
+ <latest>6.0-SNAPSHOT</latest>
+ <snapshot>
+ <buildNumber>26</buildNumber>
+ </snapshot>
+ <versions>
+ <version>6.0-SNAPSHOT</version>
+ <version>6.0-20060311.093250-41</version>
+ <version>6.0-20060311.183228-42</version>
+ <version>6.0-20060311.183228-40</version>
+ <version>6.0-20060311.183228-37</version>
+ <version>6.0-20060311.183228-30</version>
+ <version>6.0-20060311.183228-29</version>
+ <version>6.0-20060311.183228-6</version>
+ <version>6.0-20060311.183228-9</version>
+ <version>6.0-20060311.183228-10</version>
+ <version>6.0-20060313.001659-43</version>
+ <version>6.0-20060313.001659-41</version>
+ <version>6.0-20060313.001659-38</version>
+ <version>6.0-20060313.001659-31</version>
+ <version>6.0-20060313.001659-30</version>
+ <version>6.0-20060313.001659-7</version>
+ <version>6.0-20060313.001659-10</version>
+ <version>6.0-20060313.001659-11</version>
+ </versions>
+ <lastUpdated>20060313010719</lastUpdated>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar
new file mode 100644
index 000000000..ae0cb2e32
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5
new file mode 100644
index 000000000..15a0630f6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5
@@ -0,0 +1 @@
+69af4ffaf5e65d02b6ca50467e79b42a \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1
new file mode 100644
index 000000000..107f46801
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1
@@ -0,0 +1 @@
+902005afa0e151d7750735180f692d32fa5d76e2 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar
new file mode 100644
index 000000000..faa0d98cc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5
new file mode 100644
index 000000000..3a84ad832
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5
@@ -0,0 +1 @@
+f7d54f505b8affa8a8235e01fbc38219 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1
new file mode 100644
index 000000000..3a72dc7bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1
@@ -0,0 +1 @@
+821f8ec6e32c3fecd1b1fb85f83bfea148a86da8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar
new file mode 100644
index 000000000..712c664dd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5
new file mode 100644
index 000000000..04d4ce468
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5
@@ -0,0 +1 @@
+a2af4d8c1c00d8405ae2074fbcca87aa \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1
new file mode 100644
index 000000000..19ae195e0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1
@@ -0,0 +1 @@
+43dfd03d32f70b8b72cdbefa1678dbeacf9a1f8c \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom
new file mode 100644
index 000000000..d3c136b8c
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom
@@ -0,0 +1,56 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>maven-shared-components</artifactId>
+ <groupId>org.apache.maven.shared</groupId>
+ <version>4</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-downloader</artifactId>
+ <name>Maven Downloader</name>
+ <version>1.0</version>
+ <description>Provide a super simple interface for downloading a single artifact.</description>
+ <url>http://maven.apache.org</url>
+ <scm>
+ <connection>scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0</developerConnection>
+ <url>https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0</url>
+ </scm>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5
new file mode 100644
index 000000000..89e705b79
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5
@@ -0,0 +1 @@
+8ab3c303c12323c469be9beb591f3f12 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1
new file mode 100644
index 000000000..1a75091fa
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1
@@ -0,0 +1 @@
+e4484abb15526e31b8ea514d3ba68e31189c12b0 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar
new file mode 100644
index 000000000..3114e1ae6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.md5
new file mode 100644
index 000000000..3f77b9093
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.md5
@@ -0,0 +1 @@
+942c2a52f0e38b1e59b12837905d1f25 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.sha1
new file mode 100644
index 000000000..1b0a186fc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.sha1
@@ -0,0 +1 @@
+738d6a8c195613ee689f0a7b8f0c6f194e909473 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar
new file mode 100644
index 000000000..994054bb4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5
new file mode 100644
index 000000000..aada2770b
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5
@@ -0,0 +1 @@
+c892f8533031750419c77dc87ed35a3b \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1
new file mode 100644
index 000000000..37af4fe89
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1
@@ -0,0 +1 @@
+8aa5027d2688c4540eec9c2b85bbee496f6d4e7c \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar
new file mode 100644
index 000000000..ae6638b79
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5
new file mode 100644
index 000000000..f5c14a937
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5
@@ -0,0 +1 @@
+b8e59f5b162f8c0f6ef23d8d249cfed8 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1
new file mode 100644
index 000000000..1bcc406e0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1
@@ -0,0 +1 @@
+923bf441d4ab0d80d45e77576dff86e2b22d2ac4 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom
new file mode 100644
index 000000000..db5fe99e7
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom
@@ -0,0 +1,56 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>maven-shared-components</artifactId>
+ <groupId>org.apache.maven.shared</groupId>
+ <version>4</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-downloader</artifactId>
+ <name>Maven Downloader</name>
+ <version>1.1</version>
+ <description>Provide a super simple interface for downloading a single artifact.</description>
+ <url>http://maven.apache.org</url>
+ <scm>
+ <connection>scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1</developerConnection>
+ <url>https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1</url>
+ </scm>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5
new file mode 100644
index 000000000..bffe895ee
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5
@@ -0,0 +1 @@
+f4d26363c090391c0b8f5a1c4d5c946a \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1
new file mode 100644
index 000000000..fb062b05f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1
@@ -0,0 +1 @@
+59f81ef23c583f0dd8e7f432ba88595c645e1fc1 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml
new file mode 100644
index 000000000..6fbced025
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-downloader</artifactId>
+ <version>1.0</version>
+ <versioning>
+ <release>1.1</release>
+ <versions>
+ <version>1.0</version>
+ <version>1.1</version>
+ </versions>
+ <lastUpdated>20061212214311</lastUpdated>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5
new file mode 100644
index 000000000..354ec6c58
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5
@@ -0,0 +1 @@
+f18235bd6072aa77beb7e01f07905e53 \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1 b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1
new file mode 100644
index 000000000..0ff8edcaf
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1
@@ -0,0 +1 @@
+7f87ddac6169d99fa54f29bc9a3f7af5a9c8741f \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom
new file mode 100644
index 000000000..ca115b505
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven</groupId>
+ <artifactId>test</artifactId>
+ <packaging>pom</packaging>
+ <version>
+ ${prj.ver.maj}.${prj.ver.min}.${prj.ver.inc}${prj.ver.suf}
+ </version>
+
+ <name>Test Archiva</name>
+ <description>
+ ${pom.name} [version ${pom.version}]. Confluence:
+ ${kb.confluence.url}/display/${prj.confluence.path}
+ </description>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+
+ <artifactId>wagon-webdav</artifactId>
+ <version>1.0-beta-2</version>
+ </extension>
+ </extensions>
+ </build>
+
+ <issueManagement>
+ <system>jira</system>
+
+ <url>${kb.jira.url}/browse/${prj.jira.key}</url>
+ </issueManagement>
+ <ciManagement>
+ <system>hudson</system>
+ <url>
+ ${kb.hudson.url}/view/${prj.hudson.view.root}
+ -=${prj.svn.branch}=-/
+ </url>
+ </ciManagement>
+ <inceptionYear>2005</inceptionYear>
+
+ <licenses>
+ <license>
+ <name>KB Internal License</name>
+ <distribution>repo</distribution>
+ <comments>This is internal project of KB.</comments>
+ </license>
+ </licenses>
+
+ <organization>
+ <name>KB, a.s.</name>
+ <url>http://www.kb.cz/</url>
+ </organization>
+
+ <properties>
+ <!--
+ - common settings
+ -->
+ <kb.svn.url>http://svn-server/renaissance</kb.svn.url>
+
+ <kb.svn.view.url>http://svn-server/renaissance</kb.svn.view.url>
+ <kb.site.url>http://tools-server/projects</kb.site.url>
+ <kb.site.dir>
+ scp://tools-server/home/tools/var/maven-sites
+ </kb.site.dir>
+ <kb.jira.url>http://jira-server/jira</kb.jira.url>
+ <kb.confluence.url>
+ http://confluence-server/confluence
+ </kb.confluence.url>
+ <kb.hudson.url>http://tools-server/hudson</kb.hudson.url>
+
+ <!-- Project configuration -->
+ <prj.url.root>${pom.groupId}</prj.url.root>
+ <prj.hudson.view.root>${pom.groupId}</prj.hudson.view.root>
+ <prj.svn>${kb.svn.url}/${prj.svn.path}</prj.svn>
+ <prj.svn.tagBase>${prj.svn}/tags</prj.svn.tagBase>
+ <prj.svn.branch>trunk</prj.svn.branch>
+
+ <prj.java.version>1.5</prj.java.version>
+ <prj.source.encoding>UTF-8</prj.source.encoding>
+
+ <!--
+ - Project specific
+ -->
+ <!-- version -->
+ <prj.ver.maj>2</prj.ver.maj>
+ <prj.ver.min>0</prj.ver.min>
+ <prj.ver.inc>4</prj.ver.inc>
+ <prj.ver.suf>-SNAPSHOT</prj.ver.suf><!-- !!! Increase this value after release. -->
+
+ <!-- paths and identificators in external systems -->
+ <prj.url.relative>
+ ${prj.url.root}/${prj.ver.maj}.${prj.ver.min}${prj.ver.suf}
+ </prj.url.relative>
+ <prj.svn.path>test/maven-arch/test-arch</prj.svn.path>
+ <prj.jira.key>TSTARCH</prj.jira.key>
+
+ <prj.confluence.path>TEST/Archiva</prj.confluence.path>
+ </properties>
+
+ <!-- MRM-731 : variable in url pom are not replaced. -->
+ <url>http://j.random.server.com/docs/${project.groupId}/${project.artifactId}/${project.version}</url>
+
+ <scm>
+ <connection>scm:svn:${prj.svn}/${prj.svn.branch}</connection>
+ <developerConnection>
+ scm:svn:${prj.svn}/${prj.svn.branch}
+ </developerConnection>
+
+ <url>${kb.svn.view.url}/${prj.svn.path}/${prj.svn.branch}</url>
+ </scm>
+
+ <distributionManagement>
+ <repository>
+ <id>internal</id>
+ <name>Internal Release Repository</name>
+ <url>
+ dav:http://tools-server/archiva/repository/internal
+ </url>
+
+ <uniqueVersion>false</uniqueVersion>
+ </repository>
+ <snapshotRepository>
+ <id>snapshots</id>
+ <name>Internal Snapshot Repository</name>
+ <url>
+ dav:http://tools-server/archiva/repository/snapshots
+ </url>
+ <uniqueVersion>false</uniqueVersion>
+
+ </snapshotRepository>
+ <site>
+ <id>website</id>
+ <name>Internal Maven Website</name>
+ <url>${kb.site.dir}/${prj.url.relative}</url>
+ </site>
+ </distributionManagement>
+
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom
new file mode 100644
index 000000000..452727f28
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom
@@ -0,0 +1,29 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.update</groupId>
+ <artifactId>test-not-updated</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <!-- default packaging is jar -->
+ <!--packaging>jar</packaging-->
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml
new file mode 100644
index 000000000..bd56a21c1
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml
@@ -0,0 +1,24 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.maven.update</groupId>
+ <artifactId>test-not-updated</artifactId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom
new file mode 100644
index 000000000..edd7b6479
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom
@@ -0,0 +1,29 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.update</groupId>
+ <artifactId>test-updated</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <!-- default packaging is jar -->
+ <!--packaging>jar</packaging-->
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml
new file mode 100644
index 000000000..86e063ca8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml
@@ -0,0 +1,24 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.maven.update</groupId>
+ <artifactId>test-updated</artifactId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
index 12538e81a..12538e81a 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
index 8ee18048c..8ee18048c 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
index b024ef7ef..b024ef7ef 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom
new file mode 100644
index 000000000..fa0c87e5c
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-api</artifactId>
+ <name>Test Project API</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom
new file mode 100644
index 000000000..b333a52d2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-broker-pom</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <artifactId>test-project-broker-ejb</artifactId>
+ <name>Test Project Broker EJB</name>
+ <packaging>ejb</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-common</artifactId>
+ <type>test-jar</type>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-common</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-api</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-id</groupId>
+ <artifactId>commons-id</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-mock</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.management</groupId>
+ <artifactId>jmxri</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom
new file mode 100644
index 000000000..fd5473630
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <artifactId>test-project-broker-pom</artifactId>
+ <name>Test Project Broker POM</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>broker-ejb</module>
+ </modules>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom
new file mode 100644
index 000000000..d47958b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-common</artifactId>
+ <name>Test Project Commons</name>
+ <dependencies>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-api</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-id</groupId>
+ <artifactId>commons-id</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.castor</groupId>
+ <artifactId>castor</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xerces</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.management</groupId>
+ <artifactId>jmxri</artifactId>
+ </dependency>
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom
new file mode 100644
index 000000000..582f1e5e1
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-endpoint-pom</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-endpoint-ejb</artifactId>
+ <name>Test Project Endpoint EJB</name>
+ <packaging>ejb</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-common</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>test-project</groupId>
+ <artifactId>test-project-api</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <!-- for tests only -->
+ <groupId>test-project</groupId>
+ <artifactId>test-project-common</artifactId>
+ <version>${pom.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-id</groupId>
+ <artifactId>commons-id</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.management</groupId>
+ <artifactId>jmxri</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom
new file mode 100644
index 000000000..ea4d6372d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>test-project</groupId>
+ <artifactId>test-project</artifactId>
+ <version>2.4.4</version>
+ </parent>
+ <artifactId>test-project-endpoint-pom</artifactId>
+ <name>Test Project Endpoint POM</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>endpoint-ejb</module>
+ </modules>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project/2.4.4/test-project-2.4.4.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project/2.4.4/test-project-2.4.4.pom
new file mode 100644
index 000000000..6dc471979
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/default-repository/test-project/test-project/2.4.4/test-project-2.4.4.pom
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>test-project</groupId>
+ <artifactId>test-project</artifactId>
+ <name>Test Project</name>
+ <version>2.4.4</version>
+ <packaging>pom</packaging>
+
+ <organization>
+ <name>Company</name>
+ <url>http://www.company.com/</url>
+ </organization>
+ <inceptionYear>2002</inceptionYear>
+
+ <modules>
+ <module>api</module>
+ <module>common</module>
+ <module>broker</module>
+ <module>endpoint</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <!-- common version strategy -->
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.0.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ <version>1.0.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ <version>2.0.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring</artifactId>
+ <version>2.0.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-mock</artifactId>
+ <version>2.0.7</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.8</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ <version>0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-id</groupId>
+ <artifactId>commons-id</artifactId>
+ <version>0.1-dev</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.castor</groupId>
+ <artifactId>castor</artifactId>
+ <version>1.0.5-xml</version>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xerces</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <version>3.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.management</groupId>
+ <artifactId>jmxri</artifactId>
+ <version>1.2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/CVS/Root b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/CVS/Root
new file mode 100644
index 000000000..2e65f24a6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/CVS/Root
@@ -0,0 +1 @@
+not a real CVS root - for testing exclusions
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/KEYS b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/KEYS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/KEYS
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/invalid.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/no-extension b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/no-extension
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/invalid/jars/no-extension
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom
new file mode 100644
index 000000000..e6a72b9d6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+ <extend>../../project.xml</extend>
+ <pomVersion>3</pomVersion>
+ <groupId>maven</groupId>
+ <id>wagon-ssh</id>
+ <artifactId>wagon-ssh</artifactId>
+ <name>Wagon SSH provider</name>
+ <currentVersion>1.0-SNAPSHOT</currentVersion>
+ <description></description>
+ <shortDescription>Wagon Provider for protocols from SSH2 family based on JSCH</shortDescription>
+ <package>org.apache.maven.wagon.providers.ssh</package>
+ <inceptionYear>2003</inceptionYear>
+ <url>http://maven.apache.org/wagon/wagon-providers/ssh</url>
+ <issueTrackingUrl>http://jira.codehaus.org/BrowseProject.jspa?id=10319</issueTrackingUrl>
+ <siteDirectory>/www/maven.apache.org/wagon/wagon-providers/ssh</siteDirectory>
+ <repository>
+ <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-wagon/wagon-providers/ssh</connection>
+ <url>http://cvs.apache.org/viewcvs/maven-wagon/wagon-providers/ssh/</url>
+ </repository>
+
+ <developers>
+ <developer>
+ <name>Michal Maczka</name>
+ <id>michal</id>
+ <email>michal.maczka@dimatics.com</email>
+ <organization>Dimatics</organization>
+ <roles>
+ <role>Creator</role>
+ <role>Developer</role>
+ <role>Release Manager</role>
+ </roles>
+ </developer>
+ </developers>
+
+ <dependencies>
+ <dependency>
+ <groupId>maven</groupId>
+ <artifactId>wagon-api</artifactId>
+ <version>0.9-SNAPSHOT</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jsch</groupId>
+ <artifactId>jsch</artifactId>
+ <version>0.1.14</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom
new file mode 100644
index 000000000..509552ef9
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom
@@ -0,0 +1,15 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-v3</artifactId>
+ <name>Maven Model v3</name>
+ <currentVersion>2.0</currentVersion>
+ <description>Maven Model v3</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar
index c2ea777c1..c2ea777c1 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar
Binary files differ
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom
index a987f03ec..a987f03ec 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml
index 526cc825a..526cc825a 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom
index cf613e847..cf613e847 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/repositories/simple-repository/groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.xml
index 57256f87d..12e7a4b25 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.xml
@@ -55,7 +55,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>update-db-artifact</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>update-db-artifact</id>
</configuration>
@@ -63,7 +63,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>create-missing-checksums</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>create-missing-checksums</id>
</configuration>
@@ -71,7 +71,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>update-db-repository-metadata</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>update-db-repository-metadata</id>
</configuration>
@@ -79,7 +79,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>validate-checksum</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>validate-checksum</id>
</configuration>
@@ -87,7 +87,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>index-content</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>index-content</id>
</configuration>
@@ -95,7 +95,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>auto-remove</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>auto-remove</id>
</configuration>
@@ -103,7 +103,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>auto-rename</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>auto-rename</id>
</configuration>
@@ -111,7 +111,7 @@
<component>
<role>org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer</role>
<role-hint>available-but-unselected</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.SampleKnownConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.SampleKnownConsumer</implementation>
<configuration>
<id>available-but-unselected</id>
</configuration>
@@ -121,7 +121,7 @@
<component>
<role>org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer</role>
<role-hint>update-db-bad-content</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.InvalidScanConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.InvalidScanConsumer</implementation>
<configuration>
<id>update-db-bad-content</id>
</configuration>
@@ -129,15 +129,15 @@
<component>
<role>org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer</role>
<role-hint>move-to-trash-then-notify</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.InvalidScanConsumer</implementation>
+ <implementation>org.apache.archiva.repository.scanner.InvalidScanConsumer</implementation>
<configuration>
<id>move-to-trash-then-notify</id>
</configuration>
</component>
<component>
- <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>
+ <role>org.apache.archiva.repository.scanner.RepositoryContentConsumers</role>
<role-hint>test</role-hint>
- <implementation>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumersStub</implementation>
+ <implementation>org.apache.archiva.repository.scanner.RepositoryContentConsumersStub</implementation>
</component>
</components>
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/scanner-archiva.xml b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/scanner-archiva.xml
new file mode 100644
index 000000000..13a884e14
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/resources/scanner-archiva.xml
@@ -0,0 +1,109 @@
+<?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>
+
+ <repositoryScanning>
+ <fileTypes>
+ <fileType>
+ <id>artifacts</id>
+ <patterns>
+ <pattern>**/*.pom</pattern>
+ <pattern>**/*.jar</pattern>
+ <pattern>**/*.ear</pattern>
+ <pattern>**/*.war</pattern>
+ <pattern>**/*.car</pattern>
+ <pattern>**/*.sar</pattern>
+ <pattern>**/*.mar</pattern>
+ <pattern>**/*.rar</pattern>
+ <pattern>**/*.dtd</pattern>
+ <pattern>**/*.tld</pattern>
+ <pattern>**/*.tar.gz</pattern>
+ <pattern>**/*.tar.bz2</pattern>
+ <pattern>**/*.zip</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>indexable-content</id>
+ <patterns>
+ <pattern>**/*.txt</pattern>
+ <pattern>**/*.TXT</pattern>
+ <pattern>**/*.block</pattern>
+ <pattern>**/*.config</pattern>
+ <pattern>**/*.pom</pattern>
+ <pattern>**/*.xml</pattern>
+ <pattern>**/*.xsd</pattern>
+ <pattern>**/*.dtd</pattern>
+ <pattern>**/*.tld</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>auto-remove</id>
+ <patterns>
+ <pattern>**/*.bak</pattern>
+ <pattern>**/*~</pattern>
+ <pattern>**/*-</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>ignored</id>
+ <patterns>
+ <pattern>**/.htaccess</pattern>
+ <pattern>**/KEYS</pattern>
+ <pattern>**/*.rb</pattern>
+ <pattern>**/*.sh</pattern>
+ <pattern>**/.svn/**</pattern>
+ <pattern>**/.DAV/**</pattern>
+ </patterns>
+ </fileType>
+ </fileTypes>
+ <knownContentConsumers>
+ <knownContentConsumer>update-db-artifact</knownContentConsumer>
+ <knownContentConsumer>create-missing-checksums</knownContentConsumer>
+ <knownContentConsumer>update-db-repository-metadata</knownContentConsumer>
+ <knownContentConsumer>validate-checksum</knownContentConsumer>
+ <knownContentConsumer>validate-signature</knownContentConsumer>
+ <knownContentConsumer>index-content</knownContentConsumer>
+ <knownContentConsumer>auto-remove</knownContentConsumer>
+ <knownContentConsumer>auto-rename</knownContentConsumer>
+ </knownContentConsumers>
+ <invalidContentConsumers>
+ <invalidContentConsumer>update-db-bad-content</invalidContentConsumer>
+ </invalidContentConsumers>
+ </repositoryScanning>
+
+ <databaseScanning>
+ <cronExpression>0 0 * * * ?</cronExpression>
+ <unprocessedConsumers>
+ <unprocessedConsumer>index-artifact</unprocessedConsumer>
+ <unprocessedConsumer>update-db-project</unprocessedConsumer>
+ <unprocessedConsumer>validate-repository-metadata</unprocessedConsumer>
+ <unprocessedConsumer>index-archive-toc</unprocessedConsumer>
+ <unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer>
+ <unprocessedConsumer>index-public-methods</unprocessedConsumer>
+ </unprocessedConsumers>
+ <cleanupConsumers>
+ <cleanupConsumer>not-present-remove-db-artifact</cleanupConsumer>
+ <cleanupConsumer>not-present-remove-db-project</cleanupConsumer>
+ <cleanupConsumer>not-present-remove-indexed</cleanupConsumer>
+ </cleanupConsumers>
+ </databaseScanning>
+
+</configuration>
diff --git a/archiva-modules/archiva-base/archiva-transaction/pom.xml b/archiva-modules/archiva-base/archiva-transaction/pom.xml
index bdac3e8f4..a3a534604 100644
--- a/archiva-modules/archiva-base/archiva-transaction/pom.xml
+++ b/archiva-modules/archiva-base/archiva-transaction/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-transaction</artifactId>
<name>Archiva Transactions</name>
diff --git a/archiva-modules/archiva-base/archiva-xml-tools/pom.xml b/archiva-modules/archiva-base/archiva-xml-tools/pom.xml
index cdd157ef3..0ef72ddcb 100644
--- a/archiva-modules/archiva-base/archiva-xml-tools/pom.xml
+++ b/archiva-modules/archiva-base/archiva-xml-tools/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-base</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-xml-tools</artifactId>
diff --git a/archiva-modules/archiva-base/pom.xml b/archiva-modules/archiva-base/pom.xml
index 7118b34ea..8ce9aa872 100644
--- a/archiva-modules/archiva-base/pom.xml
+++ b/archiva-modules/archiva-base/pom.xml
@@ -1,18 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~ 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
~
- ~ Licensed 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
~
- ~ 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.
+ ~ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@@ -20,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-modules</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-base</artifactId>
@@ -42,5 +45,6 @@
<module>archiva-transaction</module>
<module>archiva-artifact-converter</module>
<module>archiva-converter</module>
+ <module>archiva-repository-scanner</module>
</modules>
</project>
diff --git a/archiva-modules/archiva-database/pom.xml b/archiva-modules/archiva-database/pom.xml
index 9a75add1c..8f4ed0a27 100755
--- a/archiva-modules/archiva-database/pom.xml
+++ b/archiva-modules/archiva-database/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-modules</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-database</artifactId>
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java
index bb2cb044f..c18f587b2 100644
--- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java
+++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java
@@ -19,9 +19,15 @@ package org.apache.maven.archiva.database;
* under the License.
*/
+import java.util.List;
+
+import org.apache.maven.archiva.database.constraints.RepositoryProblemByArtifactConstraint;
import org.apache.maven.archiva.model.ArchivaArtifact;
+import org.apache.maven.archiva.model.ArchivaProjectModel;
+import org.apache.maven.archiva.model.RepositoryProblem;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.apache.maven.archiva.repository.events.RepositoryListener;
+import org.codehaus.plexus.cache.Cache;
/**
* Process repository management events and respond appropriately.
@@ -36,6 +42,21 @@ public class RepositoryDatabaseEventListener
*/
private ArtifactDAO artifactDAO;
+ /**
+ * @plexus.requirement role-hint="jdo"
+ */
+ private RepositoryProblemDAO repositoryProblemDAO;
+
+ /**
+ * @plexus.requirement role-hint="jdo"
+ */
+ private ProjectModelDAO projectModelDAO;
+
+ /**
+ * @plexus.requirement role-hint="effective-project-cache"
+ */
+ private Cache effectiveProjectCache;
+
public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact )
{
try
@@ -49,5 +70,62 @@ public class RepositoryDatabaseEventListener
{
// ignored
}
+
+ try
+ {
+ // Remove all repository problems related to this artifact
+ Constraint artifactConstraint = new RepositoryProblemByArtifactConstraint( artifact );
+ List<RepositoryProblem> repositoryProblems =
+ repositoryProblemDAO.queryRepositoryProblems( artifactConstraint );
+
+ if ( repositoryProblems != null )
+ {
+ for ( RepositoryProblem repositoryProblem : repositoryProblems )
+ {
+ repositoryProblemDAO.deleteRepositoryProblem( repositoryProblem );
+ }
+ }
+ }
+ catch ( ArchivaDatabaseException e )
+ {
+ // ignored
+ }
+
+ if ( "pom".equals( artifact.getType() ) )
+ {
+ try
+ {
+ ArchivaProjectModel projectModel =
+ projectModelDAO.getProjectModel( artifact.getGroupId(), artifact.getArtifactId(),
+ artifact.getVersion() );
+
+ projectModelDAO.deleteProjectModel( projectModel );
+
+ // Force removal of project model from effective cache
+ String projectKey = toProjectKey( projectModel );
+ synchronized ( effectiveProjectCache )
+ {
+ if ( effectiveProjectCache.hasKey( projectKey ) )
+ {
+ effectiveProjectCache.remove( projectKey );
+ }
+ }
+ }
+ catch ( ArchivaDatabaseException e )
+ {
+ // ignored
+ }
+ }
+ }
+
+ private String toProjectKey( ArchivaProjectModel project )
+ {
+ StringBuilder key = new StringBuilder();
+
+ key.append( project.getGroupId() ).append( ":" );
+ key.append( project.getArtifactId() ).append( ":" );
+ key.append( project.getVersion() );
+
+ return key.toString();
}
}
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java
index af6d12b97..ed0fad974 100644
--- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java
+++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java
@@ -28,9 +28,7 @@ import org.apache.commons.collections.functors.OrPredicate;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.DatabaseScanningConfiguration;
import org.apache.maven.archiva.consumers.functors.PermanentConsumerPredicate;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
@@ -42,13 +40,9 @@ import org.springframework.context.ApplicationContextAware;
*/
public class DatabaseConsumers
implements ApplicationContextAware
-{
- private Logger log = LoggerFactory.getLogger( DatabaseConsumers.class );
-
+{
private ArchivaConfiguration archivaConfiguration;
- private Predicate selectedCleanupConsumers;
-
private Predicate selectedUnprocessedConsumers;
private ApplicationContext applicationContext;
@@ -59,7 +53,6 @@ public class DatabaseConsumers
Predicate permanentConsumers = new PermanentConsumerPredicate();
- selectedCleanupConsumers = new OrPredicate( permanentConsumers, new SelectedCleanupConsumersPredicate() );
selectedUnprocessedConsumers = new OrPredicate( permanentConsumers, new SelectedUnprocessedConsumersPredicate() );
}
@@ -82,25 +75,14 @@ public class DatabaseConsumers
}
}
- class SelectedCleanupConsumersPredicate
- implements Predicate
+ public void initialize()
+ throws InitializationException
{
- public boolean evaluate( Object object )
- {
- boolean satisfies = false;
-
- if ( object instanceof DatabaseCleanupConsumer )
- {
- DatabaseCleanupConsumer consumer = (DatabaseCleanupConsumer) object;
- DatabaseScanningConfiguration config = archivaConfiguration.getConfiguration().getDatabaseScanning();
-
- return config.getCleanupConsumers().contains( consumer.getId() );
- }
+ Predicate permanentConsumers = new PermanentConsumerPredicate();
- return satisfies;
- }
+ selectedUnprocessedConsumers = new OrPredicate( permanentConsumers, new SelectedUnprocessedConsumersPredicate() );
}
-
+
public void setApplicationContext( ApplicationContext applicationContext )
throws BeansException
{
@@ -122,20 +104,6 @@ public class DatabaseConsumers
}
/**
- * Get the {@link List} of {@link DatabaseCleanupConsumer} objects for those
- * consumers selected due to the configuration.
- *
- * @return the list of selected {@link DatabaseCleanupConsumer} objects.
- */
- @SuppressWarnings("unchecked")
- public List<ArchivaArtifactConsumer> getSelectedCleanupConsumers()
- {
- List<ArchivaArtifactConsumer> ret = new ArrayList<ArchivaArtifactConsumer>();
- ret.addAll( CollectionUtils.select( getAvailableCleanupConsumers(), selectedCleanupConsumers ) );
- return ret;
- }
-
- /**
* Get the complete {@link List} of {@link DatabaseUnprocessedArtifactConsumer} objects
* that are available in the system, regardless of configuration.
*
@@ -146,46 +114,4 @@ public class DatabaseConsumers
{
return new ArrayList<DatabaseUnprocessedArtifactConsumer>( applicationContext.getBeansOfType( DatabaseUnprocessedArtifactConsumer.class ).values() );
}
-
- /**
- * Get the complete {@link List} of {@link DatabaseCleanupConsumer} objects
- * that are available in the system, regardless of configuration.
- *
- * @return the list of all available {@link DatabaseCleanupConsumer} objects.
- */
- @SuppressWarnings("unchecked")
- public List<DatabaseCleanupConsumer> getAvailableCleanupConsumers()
- {
- return new ArrayList<DatabaseCleanupConsumer>( applicationContext.getBeansOfType( DatabaseCleanupConsumer.class ).values() );
- }
-
- /**
- * Execute the cleanup consumers to cleanup the specified artifact from the database and index.
- *
- * @param artifact
- */
- public void executeCleanupConsumer( ArchivaArtifact artifact )
- {
- List<ArchivaArtifactConsumer> consumers = getSelectedCleanupConsumers();
- for ( ArchivaArtifactConsumer consumer : consumers )
- {
- consumer.beginScan();
- }
-
- if ( CollectionUtils.isEmpty( consumers ) )
- {
- log.warn( "There are no selected consumers for artifact cleanup." );
- return;
- }
-
- ProcessArchivaArtifactClosure processArtifactClosure = new ProcessArchivaArtifactClosure();
- processArtifactClosure.setArtifact( artifact );
-
- CollectionUtils.forAllDo( consumers, processArtifactClosure );
-
- for ( ArchivaArtifactConsumer consumer : consumers )
- {
- consumer.completeScan();
- }
- }
}
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java
index 58287e9fa..b6e5b0fba 100644
--- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java
+++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java
@@ -30,15 +30,6 @@ import org.apache.maven.archiva.model.ArchivaArtifact;
public interface DatabaseUpdater
{
/**
- * Execute the {@link #updateAllUnprocessed()} and {@link #updateAllProcessed()}
- * tasks in one go.
- *
- * @throws ArchivaDatabaseException
- */
- public void update()
- throws ArchivaDatabaseException;
-
- /**
* Update all unprocessed content.
*
* @throws ArchivaDatabaseException if there was a fatal error with the database.
@@ -53,26 +44,4 @@ public interface DatabaseUpdater
*/
public void updateUnprocessed( ArchivaArtifact artifact )
throws ArchivaDatabaseException;
-
- /**
- * Update all previously processed content.
- *
- * This is done to allow archiva to remove content from the database that
- * may have been removed from the filesystem too.
- *
- * @throws ArchivaDatabaseException if there was a fatal error with the database.
- */
- public void updateAllProcessed()
- throws ArchivaDatabaseException;
-
- /**
- * Update specific processed content.
- *
- * Example: This is done to allow a specific artifact to be removed from the
- * database if it no longer exists on the filesystem.
- *
- * @throws ArchivaDatabaseException if there was a fatal error with the database.
- */
- public void updateProcessed( ArchivaArtifact artifact )
- throws ArchivaDatabaseException;
}
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java
index 613c40349..cde8fc8af 100644
--- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java
+++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java
@@ -26,7 +26,6 @@ import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.IteratorUtils;
import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.functors.NotPredicate;
import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.constraints.ArtifactsProcessedConstraint;
@@ -60,14 +59,6 @@ public class JdoDatabaseUpdater
private ProcessArchivaArtifactClosure processArtifactClosure = new ProcessArchivaArtifactClosure();
- public void update()
- throws ArchivaDatabaseException
- {
- updateAllUnprocessed();
- updateAllProcessed();
- }
-
- @SuppressWarnings("unchecked")
public void updateAllUnprocessed()
throws ArchivaDatabaseException
{
@@ -93,32 +84,6 @@ public class JdoDatabaseUpdater
}
}
- @SuppressWarnings("unchecked")
- public void updateAllProcessed()
- throws ArchivaDatabaseException
- {
- List<ArchivaArtifact> processedArtifacts = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( true ) );
-
- beginConsumerLifecycle( dbConsumers.getSelectedCleanupConsumers() );
-
- try
- {
- // Process each consumer.
- Predicate predicate = NotPredicate.getInstance( UnprocessedArtifactPredicate.getInstance() );
-
- Iterator<ArchivaArtifact> it = IteratorUtils.filteredIterator( processedArtifacts.iterator(), predicate );
- while ( it.hasNext() )
- {
- ArchivaArtifact artifact = it.next();
- updateProcessed( artifact );
- }
- }
- finally
- {
- endConsumerLifecycle( dbConsumers.getSelectedCleanupConsumers() );
- }
- }
-
private void endConsumerLifecycle( List<ArchivaArtifactConsumer> consumers )
{
for ( ArchivaArtifactConsumer consumer : consumers )
@@ -152,19 +117,4 @@ public class JdoDatabaseUpdater
artifact.getModel().setWhenProcessed( new Date() );
dao.getArtifactDAO().saveArtifact( artifact );
}
-
- public void updateProcessed( ArchivaArtifact artifact )
- throws ArchivaDatabaseException
- {
- List<ArchivaArtifactConsumer> consumers = dbConsumers.getSelectedCleanupConsumers();
-
- if ( CollectionUtils.isEmpty( consumers ) )
- {
- log.warn( "There are no selected consumers for artifact cleanup." );
- return;
- }
-
- this.processArtifactClosure.setArtifact( artifact );
- CollectionUtils.forAllDo( consumers, this.processArtifactClosure );
- }
}
diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java
index 6a3aaa8d4..3a8865b73 100644
--- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java
+++ b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java
@@ -25,14 +25,11 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
-
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import org.apache.commons.lang.StringUtils;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer;
-import org.apache.maven.archiva.database.updater.TestDatabaseCleanupConsumer;
import org.apache.maven.archiva.database.updater.TestDatabaseUnprocessedConsumer;
import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.model.VersionedReference;
@@ -131,15 +128,6 @@ public abstract class AbstractArchivaDatabaseTestCase
this.dao = (ArchivaDAO) lookup( ArchivaDAO.class.getName(), "jdo" );
}
- protected TestDatabaseCleanupConsumer lookupTestCleanupConsumer()
- throws Exception
- {
- TestDatabaseCleanupConsumer consumer = (TestDatabaseCleanupConsumer) lookup( DatabaseCleanupConsumer.class,
- "test-db-cleanup" );
- assertNotNull( "Test Database Cleanup Consumer should not be null.", consumer );
- return consumer;
- }
-
protected TestDatabaseUnprocessedConsumer lookupTestUnprocessedConsumer()
throws Exception
{
diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java
index b5c09d87d..eaf1351c8 100644
--- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java
+++ b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java
@@ -53,10 +53,10 @@ public class RepositoryDatabaseEventListenerTest
assertEquals( listener, listeners.get( 0 ) );
}
- public ArchivaArtifact createArtifact( String artifactId, String version, ArtifactDAO artifactDao )
+ public ArchivaArtifact createArtifact( String artifactId, String version, ArtifactDAO artifactDao, String type )
{
ArchivaArtifact artifact =
- artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", "jar", "testable_repo" );
+ artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", type, "testable_repo" );
artifact.getModel().setLastModified( new Date() );
artifact.getModel().setRepositoryId( "testable_repo" );
return artifact;
@@ -67,21 +67,22 @@ public class RepositoryDatabaseEventListenerTest
{
ArtifactDAO artifactDao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" );
- // Setup artifacts in fresh DB.
- ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao );
- artifactDao.saveArtifact( artifact );
+ ArchivaArtifact pomArtifact = createPom( artifactDao );
+ ArchivaArtifact jarArtifact = createJar( artifactDao );
- assertEquals( artifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null,
- "jar", "testable_repo" ) );
+ assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "pom", "testable_repo" ) );
+ assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "jar", "testable_repo" ) );
- artifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar", "testable_repo" );
+ jarArtifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar", "testable_repo" );
ManagedRepositoryContent repository =
(ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" );
ManagedRepositoryConfiguration configuration = new ManagedRepositoryConfiguration();
configuration.setId("testable_repo");
repository.setRepository(configuration);
- listener.deleteArtifact( repository, artifact );
+ listener.deleteArtifact( repository, jarArtifact );
try
{
@@ -92,5 +93,59 @@ public class RepositoryDatabaseEventListenerTest
{
assertTrue( true );
}
+
+ assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "pom", "testable_repo" ) );
+ }
+
+ private ArchivaArtifact createJar( ArtifactDAO artifactDao )
+ throws ArchivaDatabaseException
+ {
+ ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao, "jar" );
+ artifactDao.saveArtifact( artifact );
+ return artifact;
+ }
+
+ public void testDeletePomArtifact()
+ throws Exception
+ {
+ ArtifactDAO artifactDao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" );
+
+ ArchivaArtifact pomArtifact = createPom( artifactDao );
+ ArchivaArtifact jarArtifact = createJar( artifactDao );
+
+ assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "pom", "testable_repo" ) );
+ assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "jar", "testable_repo" ) );
+
+ pomArtifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "pom", "testable_repo" );
+ ManagedRepositoryContent repository =
+ (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" );
+ ManagedRepositoryConfiguration configuration = new ManagedRepositoryConfiguration();
+ configuration.setId("testable_repo");
+ repository.setRepository(configuration);
+ listener.deleteArtifact( repository, pomArtifact );
+
+ try
+ {
+ artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "pom", "testable_repo" );
+ fail( "Should not find artifact" );
+ }
+ catch ( ObjectNotFoundException e )
+ {
+ assertTrue( true );
+ }
+
+ assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0",
+ null, "jar", "testable_repo" ) );
+ }
+
+ private ArchivaArtifact createPom( ArtifactDAO artifactDao )
+ throws ArchivaDatabaseException
+ {
+ ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao, "pom" );
+ artifactDao.saveArtifact( artifact );
+ return artifact;
}
}
diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java
index b66fb4cc3..c62f112f4 100644
--- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java
+++ b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java
@@ -19,11 +19,11 @@ package org.apache.maven.archiva.database.updater;
* under the License.
*/
+import java.util.List;
+
import org.apache.commons.collections.CollectionUtils;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-import java.util.List;
-
/**
* DatabaseConsumersTest
*
@@ -40,16 +40,6 @@ public class DatabaseConsumersTest
return dbconsumers;
}
- public void testGetAvailableCleanupConsumers()
- throws Exception
- {
- DatabaseConsumers dbconsumers = lookupDbConsumers();
- List<DatabaseCleanupConsumer> available = dbconsumers.getAvailableCleanupConsumers();
- assertNotNull( "Available Cleanup Consumers should never be null.", available );
-
- assertTrue( "Available Cleanup Consumers should have entries.", CollectionUtils.isNotEmpty( available ) );
- }
-
public void testGetAvailableUnprocessedConsumers()
throws Exception
{
@@ -60,16 +50,6 @@ public class DatabaseConsumersTest
assertTrue( "Available Unprocessed Consumers should have entries.", CollectionUtils.isNotEmpty( available ) );
}
- public void testGetSelectedCleanupConsumers()
- throws Exception
- {
- DatabaseConsumers dbconsumers = lookupDbConsumers();
- List<ArchivaArtifactConsumer> available = dbconsumers.getSelectedCleanupConsumers();
- assertNotNull( "Selected Cleanup Consumers should never be null.", available );
-
- assertTrue( "Selected Cleanup Consumers should have entries.", CollectionUtils.isNotEmpty( available ) );
- }
-
public void testGetSelectedUnprocessedConsumers()
throws Exception
{
diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java
deleted file mode 100644
index 4cc47a0df..000000000
--- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.maven.archiva.database.updater;
-
-/*
- * 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.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-
-import java.util.List;
-
-/**
- * TestDatabaseCleanupConsumer
- *
- * @version $Id$
- */
-public class TestDatabaseCleanupConsumer
- extends AbstractMonitoredConsumer
- implements DatabaseCleanupConsumer
-{
- private int countBegin = 0;
- private int countComplete = 0;
- private int countProcessed = 0;
-
- public void resetCount()
- {
- countBegin = 0;
- countProcessed = 0;
- countComplete = 0;
- }
-
- public void beginScan()
- {
- countBegin++;
- }
-
- public void completeScan()
- {
- countComplete++;
- }
-
- public List<String> getIncludedTypes()
- {
- return null;
- }
-
- public void processArchivaArtifact( ArchivaArtifact artifact )
- throws ConsumerException
- {
- countProcessed++;
- }
-
- public String getDescription()
- {
- return "Test Consumer for Database Cleanup";
- }
-
- public String getId()
- {
- return "test-db-cleanup";
- }
-
- public boolean isPermanent()
- {
- return false;
- }
-
- public int getCountBegin()
- {
- return countBegin;
- }
-
- public int getCountComplete()
- {
- return countComplete;
- }
-
- public int getCountProcessed()
- {
- return countProcessed;
- }
-}
diff --git a/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml
index a9589f71b..4783e9e1f 100644
--- a/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml
+++ b/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml
@@ -16,12 +16,6 @@
</component>
<component>
- <role>org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer</role>
- <role-hint>test-db-cleanup</role-hint>
- <implementation>org.apache.maven.archiva.database.updater.TestDatabaseCleanupConsumer</implementation>
- </component>
-
- <component>
<role>org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer</role>
<role-hint>test-db-unprocessed</role-hint>
<implementation>org.apache.maven.archiva.database.updater.TestDatabaseUnprocessedConsumer</implementation>
diff --git a/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml b/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml
index 074c748c6..bc804e39c 100755
--- a/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml
+++ b/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-reporting</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-artifact-reports</artifactId>
diff --git a/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml b/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml
index 9d064785d..18614a27a 100755
--- a/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml
+++ b/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-reporting</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-metadata-reports</artifactId>
diff --git a/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml b/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml
index e0a814110..3b79d4b54 100755
--- a/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml
+++ b/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-reporting</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-project-reports</artifactId>
diff --git a/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml b/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml
index 839097f12..aac29f23e 100755
--- a/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml
+++ b/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-reporting</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-report-manager</artifactId>
diff --git a/archiva-modules/archiva-reporting/pom.xml b/archiva-modules/archiva-reporting/pom.xml
index 1ccb966a2..5ef3e9cad 100644
--- a/archiva-modules/archiva-reporting/pom.xml
+++ b/archiva-modules/archiva-reporting/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-modules</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-reporting</artifactId>
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java b/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java
deleted file mode 100644
index 444a7b1d2..000000000
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.apache.maven.archiva.scheduled;
-
-/*
- * 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.common.ArchivaException;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.codehaus.plexus.taskqueue.TaskQueueException;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
-
-/**
- * The component that takes care of scheduling in the application.
- *
- */
-public interface ArchivaTaskScheduler
-{
- /**
- * The Plexus component role.
- */
- public final static String ROLE = ArchivaTaskScheduler.class.getName();
-
- /**
- * Checks if there is any database scanning task queued.
- *
- * @return
- * @throws ArchivaException
- */
- public boolean isProcessingDatabaseTask();
-
- /**
- * Checks if a repository scanning task for the specified repository is queuedd.
- *
- * @param repositoryId
- * @return
- * @throws ArchivaException
- */
- public boolean isProcessingRepositoryTask( String repositoryId );
-
- /**
- * Adds the database task to the database scanning queue.
- *
- * @param task
- * @throws TaskQueueException
- */
- public void queueDatabaseTask( DatabaseTask task )
- throws TaskQueueException;
-
- /**
- * Adds the repository task to the repo scanning queue.
- *
- * @param task
- * @throws TaskQueueException
- */
- public void queueRepositoryTask( RepositoryTask task )
- throws TaskQueueException;
-
- /**
- * Adds the indexing task to the indexing queue.
- *
- * @param task
- * @throws TaskQueueException
- */
- public void queueIndexingTask( ArtifactIndexingTask task )
- throws TaskQueueException;
-
- /**
- * Schedules the database tasks using the set cron expression.
- *
- * @throws TaskExecutionException
- */
- public void scheduleDatabaseTasks()
- throws TaskExecutionException;
-
- public void startup()
- throws ArchivaException;
-}
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java b/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java
deleted file mode 100644
index 5075b6e81..000000000
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/TaskCreator.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.maven.archiva.scheduled.tasks;
-
-/*
- * 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 java.io.File;
-import java.io.IOException;
-
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.sonatype.nexus.index.NexusIndexer;
-import org.sonatype.nexus.index.context.DefaultIndexingContext;
-import org.sonatype.nexus.index.context.IndexingContext;
-import org.sonatype.nexus.index.context.UnsupportedExistingLuceneIndexException;
-
-/**
- * TaskCreator Convenience class for creating Archiva tasks.
- * @todo Nexus specifics shouldn't be in the archiva-scheduled module
- */
-public class TaskCreator
-{
- public static RepositoryTask createRepositoryTask( String repositoryId )
- {
- RepositoryTask task = new RepositoryTask();
- task.setRepositoryId( repositoryId );
- return task;
- }
-
- public static RepositoryTask createRepositoryTask( String repositoryId, boolean scanAll )
- {
- RepositoryTask task = createRepositoryTask( repositoryId );
- task.setScanAll( scanAll );
-
- return task;
- }
-
- public static RepositoryTask createRepositoryTask( String repositoryId, File resourceFile,
- boolean updateRelatedArtifacts )
- {
- RepositoryTask task = createRepositoryTask( repositoryId );
- task.setResourceFile( resourceFile );
- task.setUpdateRelatedArtifacts( updateRelatedArtifacts );
-
- return task;
- }
-
- public static RepositoryTask createRepositoryTask( String repositoryId, File resourceFile,
- boolean updateRelatedArtifacts, boolean scanAll )
- {
- RepositoryTask task = createRepositoryTask( repositoryId, resourceFile, updateRelatedArtifacts );
- task.setScanAll( scanAll );
-
- return task;
- }
-
- public static ArtifactIndexingTask createIndexingTask( ManagedRepositoryConfiguration repository, File resource,
- ArtifactIndexingTask.Action action, IndexingContext context )
- {
- return new ArtifactIndexingTask( repository, resource, action, context );
- }
-
- public static IndexingContext createContext( ManagedRepositoryConfiguration repository )
- throws IOException, UnsupportedExistingLuceneIndexException
- {
- String indexDir = repository.getIndexDir();
- File managedRepository = new File( repository.getLocation() );
-
- File indexDirectory = null;
- if ( indexDir != null && !"".equals( indexDir ) )
- {
- indexDirectory = new File( repository.getIndexDir() );
- }
- else
- {
- indexDirectory = new File( managedRepository, ".indexer" );
- }
-
- IndexingContext context =
- new DefaultIndexingContext( repository.getId(), repository.getId(), managedRepository, indexDirectory,
- null, null, NexusIndexer.FULL_INDEX, false );
- context.setSearchable( repository.isScanned() );
- return context;
- }
-
-}
diff --git a/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml
deleted file mode 100644
index 27e491340..000000000
--- a/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" ?>
-<!--
- ~ 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.
- -->
-
-<component-set>
- <components>
- <!--
- |
- | Database Update Task Queue / Executor
- |
- -->
- <component>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>database-update</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
- <lifecycle-handler>plexus-configurable</lifecycle-handler>
- <configuration>
- <task-entry-evaluators>
- </task-entry-evaluators>
- <task-exit-evaluators>
- </task-exit-evaluators>
- <task-viability-evaluators>
- </task-viability-evaluators>
- </configuration>
- </component>
-
- <component>
- <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
- <role-hint>database-update</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
- <instantiation-strategy>singleton</instantiation-strategy>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
- <role-hint>database-update</role-hint>
- </requirement>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>database-update</role-hint>
- </requirement>
- </requirements>
- <configuration>
- <name>database-update</name>
- </configuration>
- </component>
-
- <!--
- |
- | Repository Scanning Task Queue / Executor
- |
- -->
- <component>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>repository-scanning</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
- <lifecycle-handler>plexus-configurable</lifecycle-handler>
- <configuration>
- <task-entry-evaluators>
- </task-entry-evaluators>
- <task-exit-evaluators>
- </task-exit-evaluators>
- <task-viability-evaluators>
- </task-viability-evaluators>
- </configuration>
- </component>
-
- <component>
- <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
- <role-hint>repository-scanning</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
- <instantiation-strategy>singleton</instantiation-strategy>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
- <role-hint>repository-scanning</role-hint>
- </requirement>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>repository-scanning</role-hint>
- </requirement>
- </requirements>
- <configuration>
- <name>repository-scanning</name>
- </configuration>
- </component>
- </components>
-
- <!--
- |
- | Indexing Task Queue / Executor
- |
- -->
- <component>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>indexing</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
- <lifecycle-handler>plexus-configurable</lifecycle-handler>
- <configuration>
- <task-entry-evaluators>
- </task-entry-evaluators>
- <task-exit-evaluators>
- </task-exit-evaluators>
- <task-viability-evaluators>
- </task-viability-evaluators>
- </configuration>
- </component>
-
- <component>
- <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
- <role-hint>indexing</role-hint>
- <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
- <instantiation-strategy>singleton</instantiation-strategy>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
- <role-hint>indexing</role-hint>
- </requirement>
- <requirement>
- <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
- <role-hint>indexing</role-hint>
- </requirement>
- </requirements>
- <configuration>
- <name>indexing</name>
- </configuration>
- </component>
-
-</component-set>
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java b/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java
deleted file mode 100644
index d8ab64a4e..000000000
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.maven.archiva.scheduled;
-
-/*
- * 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.consumers.AbstractMonitoredConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-
-import java.util.List;
-
-/**
- * TestDatabaseCleanupConsumer
- *
- * @version $Id$
- */
-public class TestDatabaseCleanupConsumer
- extends AbstractMonitoredConsumer
- implements DatabaseCleanupConsumer
-{
- private int countBegin = 0;
- private int countComplete = 0;
- private int countProcessed = 0;
-
- public void resetCount()
- {
- countBegin = 0;
- countProcessed = 0;
- countComplete = 0;
- }
-
- public void beginScan()
- {
- countBegin++;
- }
-
- public void completeScan()
- {
- countComplete++;
- }
-
- public List<String> getIncludedTypes()
- {
- return null;
- }
-
- public void processArchivaArtifact( ArchivaArtifact artifact )
- throws ConsumerException
- {
- countProcessed++;
- }
-
- public String getDescription()
- {
- return "Test Consumer for Database Cleanup";
- }
-
- public String getId()
- {
- return "test-db-cleanup";
- }
-
- public boolean isPermanent()
- {
- return false;
- }
-
- public int getCountBegin()
- {
- return countBegin;
- }
-
- public int getCountComplete()
- {
- return countComplete;
- }
-
- public int getCountProcessed()
- {
- return countProcessed;
- }
-}
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java b/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java
deleted file mode 100644
index 68c1ad476..000000000
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/tasks/TaskCreatorTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.apache.maven.archiva.scheduled.tasks;
-
-/*
- * 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 java.io.File;
-
-import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-
-public class TaskCreatorTest
- extends PlexusInSpringTestCase
-{
- private static final String REPO_ID = "test-repo";
-
- public void testCreateRepositoryTask()
- throws Exception
- {
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID );
-
- assertEquals( "Incorrect repository id set.", REPO_ID, task.getRepositoryId() );
- }
-
- public void testCreateRepositoryTaskWithTaskNameSuffix()
- throws Exception
- {
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID );
-
- assertBasicTaskDetails( task );
- }
-
- public void testCreateRepositoryTaskScanAllArtifacts()
- throws Exception
- {
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, true );
-
- assertBasicTaskDetails( task );
- assertTrue( task.isScanAll() );
- }
-
- public void testCreateRepositoryTaskDoNotScanAllArtifacts()
- throws Exception
- {
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, false );
-
- assertBasicTaskDetails( task );
- assertFalse( task.isScanAll() );
- }
-
- public void testCreateRepositoryTaskForArtifactUpdateAllRelated()
- throws Exception
- {
- File resource = new File( getBasedir(), "target/test-classes/test.jar" );
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, resource, true );
-
- assertBasicTaskDetails( task );
- assertEquals( "Incorrect resource file set.", resource, task.getResourceFile() );
- assertTrue( task.isUpdateRelatedArtifacts() );
- }
-
- public void testCreateRepositoryTaskForArtifactDoNotUpdateAllRelated()
- throws Exception
- {
- File resource = new File( getBasedir(), "target/test-classes/test.jar" );
- RepositoryTask task = TaskCreator.createRepositoryTask( REPO_ID, resource, false );
-
- assertBasicTaskDetails( task );
- assertEquals( "Incorrect resource file set.", resource, task.getResourceFile() );
- assertFalse( task.isUpdateRelatedArtifacts() );
- }
-
- private void assertBasicTaskDetails( RepositoryTask task )
- {
- assertEquals( "Incorrect repository id set.", REPO_ID, task.getRepositoryId() );
- }
-
-}
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml
new file mode 100644
index 000000000..ffcbe736b
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-api/pom.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-scheduler</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-scheduler-api</artifactId>
+ <name>Archiva Base :: Scheduled Tasks :: API</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-taskqueue</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/ArchivaTaskScheduler.java b/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/ArchivaTaskScheduler.java
new file mode 100644
index 000000000..dbcffead1
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-api/src/main/java/org/apache/archiva/scheduler/ArchivaTaskScheduler.java
@@ -0,0 +1,44 @@
+package org.apache.archiva.scheduler;
+
+/*
+ * 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.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+
+/**
+ * The component that takes care of scheduling in the application.
+ *
+ */
+public interface ArchivaTaskScheduler<T extends Task>
+{
+ /**
+ * The Plexus component role.
+ */
+ public final static String ROLE = ArchivaTaskScheduler.class.getName();
+
+ /**
+ * Adds the task to the scanning queue.
+ *
+ * @param task
+ * @throws TaskQueueException
+ */
+ public void queueTask( T task )
+ throws TaskQueueException;
+}
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/pom.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/pom.xml
new file mode 100644
index 000000000..73c70f4a8
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-scheduler</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-scheduler-database</artifactId>
+ <name>Archiva Base :: Scheduled Tasks :: Database</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-database</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-quartz</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-metadata</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.outputDirectory}/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutor.java
index a4dbb9d8b..a675d8e51 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutor.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.database;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,6 @@ package org.apache.maven.archiva.scheduled.executors;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.updater.DatabaseUpdater;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.taskqueue.Task;
@@ -73,16 +72,6 @@ public class ArchivaDatabaseUpdateTaskExecutor
throw new TaskExecutionException( "Error running unprocessed updater", e );
}
- try
- {
- log.info( "Task: Updating processed artifacts" );
- databaseUpdater.updateAllProcessed();
- }
- catch ( ArchivaDatabaseException e )
- {
- throw new TaskExecutionException( "Error running processed updater", e );
- }
-
time = System.currentTimeMillis() - time;
log.info( "Finished database task in " + time + "ms." );
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseArchivaTaskScheduler.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseArchivaTaskScheduler.java
new file mode 100644
index 000000000..c98f692af
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseArchivaTaskScheduler.java
@@ -0,0 +1,209 @@
+package org.apache.archiva.scheduler.database;
+
+/*
+ * 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 java.text.ParseException;
+import java.util.List;
+
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.maven.archiva.common.ArchivaException;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.ConfigurationEvent;
+import org.apache.maven.archiva.configuration.ConfigurationListener;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
+import org.codehaus.plexus.scheduler.CronExpressionValidator;
+import org.codehaus.plexus.scheduler.Scheduler;
+import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.quartz.CronTrigger;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.SchedulerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Default implementation of a scheduling component for archiva.
+ *
+ * @plexus.component role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="database"
+ */
+public class DatabaseArchivaTaskScheduler
+ implements ArchivaTaskScheduler<DatabaseTask>, Startable, ConfigurationListener
+{
+ private Logger log = LoggerFactory.getLogger( DatabaseArchivaTaskScheduler.class );
+
+ /**
+ * @plexus.requirement
+ */
+ private Scheduler scheduler;
+
+ /**
+ * @plexus.requirement role-hint="database-update"
+ */
+ private TaskQueue databaseUpdateQueue;
+
+ /**
+ * @plexus.requirement
+ */
+ private ArchivaConfiguration archivaConfiguration;
+
+ private static final String DATABASE_SCAN_GROUP = "dbg";
+
+ private static final String DATABASE_JOB = "dbj";
+
+ private static final String DATABASE_JOB_TRIGGER = "dbt";
+
+ static final String TASK_QUEUE = "TASK_QUEUE";
+
+ public static final String CRON_HOURLY = "0 0 * * * ?";
+
+ public void startup()
+ throws ArchivaException
+ {
+ archivaConfiguration.addListener( this );
+
+ try
+ {
+ start();
+ }
+ catch ( StartingException e )
+ {
+ throw new ArchivaException( e.getMessage(), e );
+ }
+ }
+
+ public void start()
+ throws StartingException
+ {
+ try
+ {
+ scheduleDatabaseJobs();
+ }
+ catch ( SchedulerException e )
+ {
+ throw new StartingException( "Unable to start scheduler: " + e.getMessage(), e );
+ }
+ }
+
+ public void stop()
+ throws StoppingException
+ {
+ try
+ {
+ scheduler.unscheduleJob( DATABASE_JOB, DATABASE_SCAN_GROUP );
+ }
+ catch ( SchedulerException e )
+ {
+ throw new StoppingException( "Unable to unschedule tasks", e );
+ }
+ }
+
+ public void scheduleDatabaseTasks()
+ throws TaskExecutionException
+ {
+ try
+ {
+ scheduleDatabaseJobs();
+ }
+ catch ( SchedulerException e )
+ {
+ throw new TaskExecutionException( "Unable to schedule repository jobs: " + e.getMessage(), e );
+
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public boolean isProcessingDatabaseTask()
+ {
+ List<? extends Task> queue = null;
+
+ try
+ {
+ queue = databaseUpdateQueue.getQueueSnapshot();
+ }
+ catch ( TaskQueueException e )
+ {
+ // not possible with plexus-taskqueue implementation, ignore
+ }
+
+ return !queue.isEmpty();
+ }
+
+ public void queueTask( DatabaseTask task )
+ throws TaskQueueException
+ {
+ databaseUpdateQueue.put( task );
+ }
+
+ public void configurationEvent( ConfigurationEvent event )
+ {
+ if ( event.getType() == ConfigurationEvent.SAVED )
+ {
+ try
+ {
+ scheduler.unscheduleJob( DATABASE_JOB, DATABASE_SCAN_GROUP );
+
+ scheduleDatabaseJobs();
+ }
+ catch ( SchedulerException e )
+ {
+ log.error( "Error restarting the database scanning job after property change." );
+ }
+ }
+ }
+
+ private synchronized void scheduleDatabaseJobs()
+ throws SchedulerException
+ {
+ String cronString = archivaConfiguration.getConfiguration().getDatabaseScanning().getCronExpression();
+
+ // setup the unprocessed artifact job
+ JobDetail databaseJob = new JobDetail( DATABASE_JOB, DATABASE_SCAN_GROUP, DatabaseTaskJob.class );
+
+ JobDataMap dataMap = new JobDataMap();
+ dataMap.put( TASK_QUEUE, databaseUpdateQueue );
+ databaseJob.setJobDataMap( dataMap );
+
+ CronExpressionValidator cronValidator = new CronExpressionValidator();
+ if ( !cronValidator.validate( cronString ) )
+ {
+ log.warn(
+ "Cron expression [" + cronString + "] for database update is invalid. Defaulting to hourly." );
+ cronString = CRON_HOURLY;
+ }
+
+ try
+ {
+ CronTrigger trigger = new CronTrigger( DATABASE_JOB_TRIGGER, DATABASE_SCAN_GROUP, cronString );
+
+ scheduler.scheduleJob( databaseJob, trigger );
+ }
+ catch ( ParseException e )
+ {
+ log.error(
+ "ParseException in database scanning cron expression, disabling database scanning: " + e.getMessage() );
+ }
+
+ }
+} \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTask.java
index c2db624de..6757fa43f 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTask.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.tasks;
+package org.apache.archiva.scheduler.database;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTaskJob.java
index e00829be1..1721505a3 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/java/org/apache/archiva/scheduler/database/DatabaseTaskJob.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled;
+package org.apache.archiva.scheduler.database;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,7 +19,6 @@ package org.apache.maven.archiva.scheduled;
* under the License.
*/
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
import org.codehaus.plexus.scheduler.AbstractJob;
import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.TaskQueue;
@@ -47,7 +46,7 @@ public class DatabaseTaskJob
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
setJobDataMap( dataMap );
- TaskQueue taskQueue = (TaskQueue) dataMap.get( DefaultArchivaTaskScheduler.TASK_QUEUE );
+ TaskQueue taskQueue = (TaskQueue) dataMap.get( DatabaseArchivaTaskScheduler.TASK_QUEUE );
Task task = new DatabaseTask();
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 000000000..3d77c29ce
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" ?>
+<!--
+ ~ 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.
+ -->
+
+<component-set>
+ <components>
+ <!--
+ |
+ | Database Update Task Queue / Executor
+ |
+ -->
+ <component>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>database-update</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
+ <lifecycle-handler>plexus-configurable</lifecycle-handler>
+ <configuration>
+ <task-entry-evaluators>
+ </task-entry-evaluators>
+ <task-exit-evaluators>
+ </task-exit-evaluators>
+ <task-viability-evaluators>
+ </task-viability-evaluators>
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+ <role-hint>database-update</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+ <instantiation-strategy>singleton</instantiation-strategy>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+ <role-hint>database-update</role-hint>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>database-update</role-hint>
+ </requirement>
+ </requirements>
+ <configuration>
+ <name>database-update</name>
+ </configuration>
+ </component>
+ </components>
+</component-set>
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.java
index 84a8235a8..6d83c4c7f 100644
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.database;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -25,7 +25,6 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
@@ -34,7 +33,6 @@ import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.database.constraints.ArtifactsProcessedConstraint;
import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
import org.codehaus.plexus.jdo.JdoFactory;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/TestDatabaseUnprocessedConsumer.java
index 6f3807c07..185071b9a 100644
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/java/org/apache/archiva/scheduler/database/TestDatabaseUnprocessedConsumer.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled;
+package org.apache.archiva.scheduler.database;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/maven-metadata.xml
new file mode 100644
index 000000000..b3baf545d
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/maven-metadata.xml
@@ -0,0 +1,26 @@
+<?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.
+ -->
+
+<!-- This metdata is intentionally wrong. -->
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5
index ef7483fad..ef7483fad 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1
index 4bc014766..4bc014766 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
new file mode 100644
index 000000000..caf5b6697
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
new file mode 100644
index 000000000..bb7570891
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
@@ -0,0 +1,30 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+ <versioning>
+ <versions>
+ <version>2.0</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
new file mode 100644
index 000000000..caf5b6697
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
new file mode 100644
index 000000000..202a0a448
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>A</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>war</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5
index 78a953bc5..78a953bc5 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1
index 71d6233aa..71d6233aa 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5
index 665059bc7..665059bc7 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1
index c8494eb9d..c8494eb9d 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
new file mode 100644
index 000000000..fa5f8f6c8
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>B</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5
index 2324bce0c..2324bce0c 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1
index d8d5abce7..d8d5abce7 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
new file mode 100644
index 000000000..c3034e820
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>B</artifactId>
+ <version>2.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5
index 4ddd22b82..4ddd22b82 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1
index 95912764c..95912764c 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
new file mode 100644
index 000000000..ae14cd7eb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>C</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>war</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5
index d08745961..d08745961 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1
index fbe7bd338..fbe7bd338 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5
index 4eb175498..4eb175498 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1
index 78e0b6eb7..78e0b6eb7 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
new file mode 100644
index 000000000..8ce7fc7bb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
@@ -0,0 +1,23 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.maven</groupId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
new file mode 100644
index 000000000..12538e81a
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5
index b163670f2..b163670f2 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5
diff --git a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1
index dedf18ade..dedf18ade 100644
--- a/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
new file mode 100644
index 000000000..8ee18048c
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+ <version>1.0</version>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
new file mode 100644
index 000000000..b024ef7ef
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
@@ -0,0 +1,24 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/archiva-test.xml
index 7721bb63e..7721bb63e 100644
--- a/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/archiva-test.xml
diff --git a/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.xml
index d563701e7..2d2746d21 100644
--- a/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-database/src/test/resources/org/apache/archiva/scheduler/database/ArchivaDatabaseUpdateTaskExecutorTest.xml
@@ -23,7 +23,7 @@
<component>
<role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
<role-hint>test-database-update</role-hint>
- <implementation>org.apache.maven.archiva.scheduled.executors.ArchivaDatabaseUpdateTaskExecutor</implementation>
+ <implementation>org.apache.archiva.scheduler.database.ArchivaDatabaseUpdateTaskExecutor</implementation>
<description></description>
<requirements>
<requirement>
@@ -67,15 +67,9 @@
</component>
<component>
- <role>org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer</role>
- <role-hint>test-db-cleanup</role-hint>
- <implementation>org.apache.maven.archiva.scheduled.TestDatabaseCleanupConsumer</implementation>
- </component>
-
- <component>
<role>org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer</role>
<role-hint>test-db-unprocessed</role-hint>
- <implementation>org.apache.maven.archiva.scheduled.TestDatabaseUnprocessedConsumer</implementation>
+ <implementation>org.apache.archiva.scheduler.database.TestDatabaseUnprocessedConsumer</implementation>
</component>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/pom.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/pom.xml
new file mode 100644
index 000000000..412d05472
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-scheduler</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-scheduler-indexing</artifactId>
+ <name>Archiva Base :: Scheduled Tasks :: Indexing</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.nexus</groupId>
+ <artifactId>nexus-indexer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-metadata</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.outputDirectory}/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutor.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
index 2eef44f6d..64e13b636 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutor.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.indexing;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -25,7 +25,6 @@ import java.io.IOException;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.taskqueue.Task;
@@ -47,7 +46,6 @@ import org.sonatype.nexus.index.packer.IndexPackingRequest;
* all performed by this executor. Add and update artifact in index tasks are added in the indexing task queue by the
* NexusIndexerConsumer while remove artifact from index tasks are added by the LuceneCleanupRemoveIndexedConsumer.
*
- * @todo Nexus specifics shouldn't be in the archiva-scheduled module
* @plexus.component role="org.codehaus.plexus.taskqueue.execution.TaskExecutor" role-hint="indexing"
* instantiation-strategy="singleton"
*/
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArtifactIndexingTask.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArtifactIndexingTask.java
index a9c0ac465..79207e731 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArtifactIndexingTask.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArtifactIndexingTask.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.tasks;
+package org.apache.archiva.scheduler.indexing;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,10 +20,14 @@ package org.apache.maven.archiva.scheduled.tasks;
*/
import java.io.File;
+import java.io.IOException;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.codehaus.plexus.taskqueue.Task;
+import org.sonatype.nexus.index.NexusIndexer;
+import org.sonatype.nexus.index.context.DefaultIndexingContext;
import org.sonatype.nexus.index.context.IndexingContext;
+import org.sonatype.nexus.index.context.UnsupportedExistingLuceneIndexException;
public class ArtifactIndexingTask
implements Task
@@ -116,4 +120,27 @@ public class ArtifactIndexingTask
return false;
return true;
}
+
+ public static IndexingContext createContext( ManagedRepositoryConfiguration repository )
+ throws IOException, UnsupportedExistingLuceneIndexException
+ {
+ String indexDir = repository.getIndexDir();
+ File managedRepository = new File( repository.getLocation() );
+
+ File indexDirectory = null;
+ if ( indexDir != null && !"".equals( indexDir ) )
+ {
+ indexDirectory = new File( repository.getIndexDir() );
+ }
+ else
+ {
+ indexDirectory = new File( managedRepository, ".indexer" );
+ }
+
+ IndexingContext context =
+ new DefaultIndexingContext( repository.getId(), repository.getId(), managedRepository, indexDirectory,
+ null, null, NexusIndexer.FULL_INDEX, false );
+ context.setSearchable( repository.isScanned() );
+ return context;
+ }
}
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/IndexingArchivaTaskScheduler.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/IndexingArchivaTaskScheduler.java
new file mode 100644
index 000000000..d5d92f3b8
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/IndexingArchivaTaskScheduler.java
@@ -0,0 +1,51 @@
+package org.apache.archiva.scheduler.indexing;
+
+/*
+ * 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.archiva.scheduler.ArchivaTaskScheduler;
+import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Default implementation of a scheduling component for archiva.
+ *
+ * @todo FIXME - consider just folding in, not really scheduled
+ *
+ * @plexus.component role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="indexing"
+ */
+public class IndexingArchivaTaskScheduler
+ implements ArchivaTaskScheduler<ArtifactIndexingTask>
+{
+ private Logger log = LoggerFactory.getLogger( IndexingArchivaTaskScheduler.class );
+
+ /**
+ * @plexus.requirement role-hint="indexing"
+ */
+ private TaskQueue indexingQueue;
+
+ public void queueTask( ArtifactIndexingTask task )
+ throws TaskQueueException
+ {
+ indexingQueue.put( task );
+ }
+
+}
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 000000000..68e97ab8d
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" ?>
+<!--
+ ~ 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.
+ -->
+
+<component-set>
+ <components>
+ <!--
+ |
+ | Indexing Task Queue / Executor
+ |
+ -->
+ <component>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>indexing</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
+ <lifecycle-handler>plexus-configurable</lifecycle-handler>
+ <configuration>
+ <task-entry-evaluators>
+ </task-entry-evaluators>
+ <task-exit-evaluators>
+ </task-exit-evaluators>
+ <task-viability-evaluators>
+ </task-viability-evaluators>
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+ <role-hint>indexing</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+ <instantiation-strategy>singleton</instantiation-strategy>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+ <role-hint>indexing</role-hint>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>indexing</role-hint>
+ </requirement>
+ </requirements>
+ <configuration>
+ <name>indexing</name>
+ </configuration>
+ </component>
+ </components>
+</component-set>
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutorTest.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java
index a0e90b647..d8aeb1787 100644
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaIndexingTaskExecutorTest.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/test/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutorTest.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.indexing;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,14 +31,12 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.commons.io.FileUtils;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.sonatype.nexus.index.ArtifactInfo;
import org.sonatype.nexus.index.FlatSearchRequest;
@@ -95,7 +93,7 @@ public class ArchivaIndexingTaskExecutorTest
indexingExecutor.setIndexerEngine( indexerEngine );
indexingExecutor.setIndexPacker( indexPacker );
- context = TaskCreator.createContext( repositoryConfig );
+ context = ArtifactIndexingTask.createContext( repositoryConfig );
}
protected void tearDown()
@@ -124,7 +122,7 @@ public class ArchivaIndexingTaskExecutorTest
"org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" );
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
indexingExecutor.executeTask( task );
@@ -164,7 +162,7 @@ public class ArchivaIndexingTaskExecutorTest
"org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" );
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
indexingExecutor.executeTask( task );
indexingExecutor.executeTask( task );
@@ -193,7 +191,7 @@ public class ArchivaIndexingTaskExecutorTest
"org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" );
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
// remove artifact from index
indexingExecutor.executeTask( task );
@@ -213,15 +211,13 @@ public class ArchivaIndexingTaskExecutorTest
searcher.close();
- context = TaskCreator.createContext( repositoryConfig );
+ context = ArtifactIndexingTask.createContext( repositoryConfig );
// remove added artifact from index
- task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.DELETE, context );
+ task = new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.DELETE, context );
indexingExecutor.executeTask( task );
- task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.FINISH, context );
+ task = new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.FINISH, context );
indexingExecutor.executeTask( task );
q = new BooleanQuery();
@@ -250,12 +246,11 @@ public class ArchivaIndexingTaskExecutorTest
"org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" );
ArtifactIndexingTask task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.ADD, context );
indexingExecutor.executeTask( task );
- task =
- TaskCreator.createIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.FINISH, context );
+ task = new ArtifactIndexingTask( repositoryConfig, artifactFile, ArtifactIndexingTask.Action.FINISH, context );
indexingExecutor.executeTask( task );
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/pom.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/pom.xml
new file mode 100644
index 000000000..d71b10925
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-scheduler</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>archiva-scheduler-repository</artifactId>
+ <name>Archiva Base :: Scheduled Tasks :: Repository Scanning</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-database</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-scanner</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-quartz</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-database-consumers</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <id>merge</id>
+ <goals>
+ <goal>merge-metadata</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor>
+ <descriptor>${project.build.outputDirectory}/META-INF/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutor.java
index 631e6a03f..7585e699c 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutor.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,14 @@ package org.apache.maven.archiva.scheduled.executors;
* under the License.
*/
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
+import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
+import org.apache.archiva.repository.scanner.RepositoryScanner;
+import org.apache.archiva.repository.scanner.RepositoryScannerException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
@@ -33,11 +41,7 @@ import org.apache.maven.archiva.database.constraints.UniqueArtifactIdConstraint;
import org.apache.maven.archiva.database.constraints.UniqueGroupIdConstraint;
import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.model.RepositoryContentStatistics;
-import org.apache.maven.archiva.repository.RepositoryException;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanStatistics;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanner;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
+import org.apache.maven.archiva.repository.events.RepositoryListener;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.taskqueue.Task;
@@ -46,15 +50,11 @@ import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
/**
- * ArchivaRepositoryScanningTaskExecutor
+ * ArchivaRepositoryScanningTaskExecutor
*
* @version $Id$
- *
+ *
* @plexus.component
* role="org.codehaus.plexus.taskqueue.execution.TaskExecutor"
* role-hint="repository-scanning"
@@ -63,12 +63,14 @@ public class ArchivaRepositoryScanningTaskExecutor
implements TaskExecutor, Initializable
{
private Logger log = LoggerFactory.getLogger( ArchivaRepositoryScanningTaskExecutor.class );
-
+
/**
+ * TODO: just for stats, remove this and use the main stats module
+ *
* @plexus.requirement role-hint="jdo"
*/
private ArchivaDAO dao;
-
+
/**
* @plexus.requirement
*/
@@ -76,16 +78,21 @@ public class ArchivaRepositoryScanningTaskExecutor
/**
* The repository scanner component.
- *
+ *
* @plexus.requirement
*/
private RepositoryScanner repoScanner;
-
+
+ /**
+ * @plexus.requirement role="org.apache.maven.archiva.repository.events.RepositoryListener"
+ */
+ private List<RepositoryListener> repositoryListeners;
+
/**
* @plexus.requirement
*/
private RepositoryContentConsumers consumers;
-
+
private Task task;
public void initialize()
@@ -98,17 +105,26 @@ public class ArchivaRepositoryScanningTaskExecutor
public void executeTask( Task task )
throws TaskExecutionException
{
+
+ // TODO: replace this whole class with the prescribed content scanning service/action
+ // - scan repository for artifacts that do not have corresponding metadata or have been updated and
+ // send events for each
+ // - scan metadata for artifacts that have been removed and send events for each
+ // - scan metadata for missing plugin data
+ // - store information so that it can restart upon failure (publish event on the server recovery
+ // queue, remove it on successful completion)
+
this.task = task;
-
+
RepositoryTask repoTask = (RepositoryTask) task;
-
+
if ( StringUtils.isBlank( repoTask.getRepositoryId() ) )
{
throw new TaskExecutionException("Unable to execute RepositoryTask with blank repository Id.");
}
ManagedRepositoryConfiguration arepo = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoTask.getRepositoryId() );
-
+
// execute consumers on resource file if set
if( repoTask.getResourceFile() != null )
{
@@ -118,19 +134,19 @@ public class ArchivaRepositoryScanningTaskExecutor
else
{
log.info( "Executing task from queue with job name: " + repoTask );
-
+
// otherwise, execute consumers on whole repository
try
- {
+ {
if ( arepo == null )
{
throw new TaskExecutionException( "Unable to execute RepositoryTask with invalid repository id: " + repoTask.getRepositoryId() );
}
-
+
long sinceWhen = RepositoryScanner.FRESH_SCAN;
-
+
List<RepositoryContentStatistics> results = (List<RepositoryContentStatistics>) dao.query( new MostRecentRepositoryScanStatistics( arepo.getId() ) );
-
+
if ( CollectionUtils.isNotEmpty( results ) )
{
RepositoryContentStatistics lastStats = results.get( 0 );
@@ -139,21 +155,28 @@ public class ArchivaRepositoryScanningTaskExecutor
sinceWhen = lastStats.getWhenGathered().getTime() + lastStats.getDuration();
}
}
-
+
RepositoryScanStatistics stats = repoScanner.scan( arepo, sinceWhen );
-
- log.info( "Finished repository task: " + stats.toDump( arepo ) );
-
+
+ log.info( "Finished first scan: " + stats.toDump( arepo ) );
+
RepositoryContentStatistics dbstats = constructRepositoryStatistics( arepo, sinceWhen, results, stats );
-
- dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( dbstats );
-
+
+ dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( dbstats );
+
+// log.info( "Scanning for removed repository content" );
+
+// metadataRepository.findAllProjects();
+ // FIXME: do something
+
+ log.info( "Finished repository task: " + repoTask );
+
this.task = null;
}
- catch ( RepositoryException e )
- {
+ catch ( RepositoryScannerException e )
+ {
throw new TaskExecutionException( "Repository error when executing repository job.", e );
- }
+ }
}
}
@@ -161,7 +184,7 @@ public class ArchivaRepositoryScanningTaskExecutor
private RepositoryContentStatistics constructRepositoryStatistics( ManagedRepositoryConfiguration arepo,
long sinceWhen,
List<RepositoryContentStatistics> results,
- RepositoryScanStatistics stats )
+ RepositoryScanStatistics stats )
{
// I hate jpox and modello <-- and so do I
RepositoryContentStatistics dbstats = new RepositoryContentStatistics();
@@ -170,12 +193,12 @@ public class ArchivaRepositoryScanningTaskExecutor
dbstats.setRepositoryId( stats.getRepositoryId() );
dbstats.setTotalFileCount( stats.getTotalFileCount() );
dbstats.setWhenGathered( stats.getWhenGathered() );
-
+
// total artifact count
try
{
- List<ArchivaArtifact> artifacts = dao.getArtifactDAO().queryArtifacts(
- new ArtifactsByRepositoryConstraint( arepo.getId(), stats.getWhenGathered(), "groupId", true ) );
+ List<ArchivaArtifact> artifacts = dao.getArtifactDAO().queryArtifacts(
+ new ArtifactsByRepositoryConstraint( arepo.getId(), stats.getWhenGathered(), "groupId", true ) );
dbstats.setTotalArtifactCount( artifacts.size() );
}
catch ( ObjectNotFoundException oe )
@@ -183,27 +206,27 @@ public class ArchivaRepositoryScanningTaskExecutor
log.error( "Object not found in the database : " + oe.getMessage() );
}
catch ( ArchivaDatabaseException ae )
- {
+ {
log.error( "Error occurred while querying artifacts for artifact count : " + ae.getMessage() );
}
-
+
// total repo size
long size = FileUtils.sizeOfDirectory( new File( arepo.getLocation() ) );
dbstats.setTotalSize( size );
-
+
// total unique groups
List<String> repos = new ArrayList<String>();
- repos.add( arepo.getId() );
-
+ repos.add( arepo.getId() );
+
List<String> groupIds = (List<String>) dao.query( new UniqueGroupIdConstraint( repos ) );
dbstats.setTotalGroupCount( groupIds.size() );
-
+
List<Object[]> artifactIds = (List<Object[]>) dao.query( new UniqueArtifactIdConstraint( arepo.getId(), true ) );
dbstats.setTotalProjectCount( artifactIds.size() );
-
+
return dbstats;
- }
-
+ }
+
public Task getCurrentTaskInExecution()
{
return task;
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryArchivaTaskScheduler.java
index ee04d3f0d..e8a97557d 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryArchivaTaskScheduler.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled;
+package org.apache.archiva.scheduler.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -25,6 +25,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
import org.apache.maven.archiva.common.ArchivaException;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationEvent;
@@ -32,20 +34,13 @@ import org.apache.maven.archiva.configuration.ConfigurationListener;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics;
-import org.apache.maven.archiva.repository.scanner.RepositoryScanStatistics;
-import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
import org.codehaus.plexus.scheduler.CronExpressionValidator;
import org.codehaus.plexus.scheduler.Scheduler;
-import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.TaskQueue;
import org.codehaus.plexus.taskqueue.TaskQueueException;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
import org.quartz.CronTrigger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
@@ -56,49 +51,33 @@ import org.slf4j.LoggerFactory;
/**
* Default implementation of a scheduling component for archiva.
*
- * @plexus.component role="org.apache.maven.archiva.scheduled.ArchivaTaskScheduler" role-hint="default"
+ * @plexus.component role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="repository"
*/
-public class DefaultArchivaTaskScheduler
- implements ArchivaTaskScheduler, Startable, ConfigurationListener
+public class RepositoryArchivaTaskScheduler
+ implements ArchivaTaskScheduler<RepositoryTask>, Startable, ConfigurationListener
{
- private Logger log = LoggerFactory.getLogger( DefaultArchivaTaskScheduler.class );
-
+ private Logger log = LoggerFactory.getLogger( RepositoryArchivaTaskScheduler.class );
+
/**
* @plexus.requirement
*/
private Scheduler scheduler;
/**
- * @plexus.requirement role-hint="database-update"
- */
- private TaskQueue databaseUpdateQueue;
-
- /**
* @plexus.requirement role-hint="repository-scanning"
*/
private TaskQueue repositoryScanningQueue;
-
- /**
- * @plexus.requirement role-hint="indexing"
- */
- private TaskQueue indexingQueue;
/**
* @plexus.requirement
*/
private ArchivaConfiguration archivaConfiguration;
-
+
/**
* @plexus.requirement role-hint="jdo"
*/
private ArchivaDAO dao;
- private static final String DATABASE_SCAN_GROUP = "dbg";
-
- private static final String DATABASE_JOB = "dbj";
-
- private static final String DATABASE_JOB_TRIGGER = "dbt";
-
private static final String REPOSITORY_SCAN_GROUP = "rg";
private static final String REPOSITORY_JOB = "rj";
@@ -112,7 +91,7 @@ public class DefaultArchivaTaskScheduler
public static final String CRON_HOURLY = "0 0 * * * ?";
private Set<String> jobs = new HashSet<String>();
-
+
private List<String> queuedRepos = new ArrayList<String>();
public void startup()
@@ -129,7 +108,7 @@ public class DefaultArchivaTaskScheduler
throw new ArchivaException( e.getMessage(), e );
}
}
-
+
public void start()
throws StartingException
{
@@ -143,15 +122,13 @@ public class DefaultArchivaTaskScheduler
if ( repoConfig.isScanned() )
{
scheduleRepositoryJobs( repoConfig );
-
+
if( !isPreviouslyScanned( repoConfig ) )
{
queueInitialRepoScan( repoConfig );
}
}
}
-
- scheduleDatabaseJobs();
}
catch ( SchedulerException e )
{
@@ -164,8 +141,6 @@ public class DefaultArchivaTaskScheduler
{
try
{
- scheduler.unscheduleJob( DATABASE_JOB, DATABASE_SCAN_GROUP );
-
for ( String job : jobs )
{
scheduler.unscheduleJob( job, REPOSITORY_SCAN_GROUP );
@@ -179,33 +154,13 @@ public class DefaultArchivaTaskScheduler
}
}
- /**
- * @see ArchivaTaskScheduler#scheduleDatabaseTasks()
- */
- public void scheduleDatabaseTasks()
- throws TaskExecutionException
- {
- try
- {
- scheduleDatabaseJobs();
- }
- catch ( SchedulerException e )
- {
- throw new TaskExecutionException( "Unable to schedule repository jobs: " + e.getMessage(), e );
-
- }
- }
-
- /**
- * @see ArchivaTaskScheduler#isProcessingRepositoryTask(String)
- */
@SuppressWarnings("unchecked")
public boolean isProcessingRepositoryTask( String repositoryId )
{
synchronized( repositoryScanningQueue )
{
List<RepositoryTask> queue = null;
-
+
try
{
queue = repositoryScanningQueue.getQueueSnapshot();
@@ -214,7 +169,7 @@ public class DefaultArchivaTaskScheduler
{
// not possible with plexus-taskqueue implementation, ignore
}
-
+
for ( RepositoryTask queuedTask : queue )
{
if ( queuedTask.getRepositoryId().equals( repositoryId ) )
@@ -225,17 +180,14 @@ public class DefaultArchivaTaskScheduler
return false;
}
}
-
- /**
- * @see ArchivaTaskScheduler#isProcessingIndexingTaskWithName(String)
- */
+
@SuppressWarnings("unchecked")
private boolean isProcessingRepositoryTask( RepositoryTask task )
{
synchronized( repositoryScanningQueue )
{
List<RepositoryTask> queue = null;
-
+
try
{
queue = repositoryScanningQueue.getQueueSnapshot();
@@ -244,7 +196,7 @@ public class DefaultArchivaTaskScheduler
{
// not possible with plexus-taskqueue implementation, ignore
}
-
+
for ( RepositoryTask queuedTask : queue )
{
if ( task.equals( queuedTask ) )
@@ -256,30 +208,7 @@ public class DefaultArchivaTaskScheduler
}
}
- /**
- * @see ArchivaTaskScheduler#isProcessingDatabaseTask()
- */
- @SuppressWarnings("unchecked")
- public boolean isProcessingDatabaseTask()
- {
- List<? extends Task> queue = null;
-
- try
- {
- queue = databaseUpdateQueue.getQueueSnapshot();
- }
- catch ( TaskQueueException e )
- {
- // not possible with plexus-taskqueue implementation, ignore
- }
-
- return !queue.isEmpty();
- }
-
- /**
- * @see ArchivaTaskScheduler#queueRepositoryTask(RepositoryTask)
- */
- public void queueRepositoryTask( RepositoryTask task )
+ public void queueTask( RepositoryTask task )
throws TaskQueueException
{
synchronized ( repositoryScanningQueue )
@@ -296,39 +225,10 @@ public class DefaultArchivaTaskScheduler
}
}
- /**
- * @see ArchivaTaskScheduler#queueDatabaseTask(DatabaseTask)
- */
- public void queueDatabaseTask( DatabaseTask task )
- throws TaskQueueException
- {
- databaseUpdateQueue.put( task );
- }
-
- /**
- * @see ArchivaTaskScheduler#queueIndexingTask(ArtifactIndexingTask)
- */
- public void queueIndexingTask( ArtifactIndexingTask task )
- throws TaskQueueException
- {
- indexingQueue.put( task );
- }
-
public void configurationEvent( ConfigurationEvent event )
{
if ( event.getType() == ConfigurationEvent.SAVED )
{
- try
- {
- scheduler.unscheduleJob( DATABASE_JOB, DATABASE_SCAN_GROUP );
-
- scheduleDatabaseJobs();
- }
- catch ( SchedulerException e )
- {
- log.error( "Error restarting the database scanning job after property change." );
- }
-
for ( String job : jobs )
{
try
@@ -360,7 +260,7 @@ public class DefaultArchivaTaskScheduler
}
}
}
-
+
@SuppressWarnings("unchecked")
private boolean isPreviouslyScanned( ManagedRepositoryConfiguration repoConfig )
{
@@ -374,12 +274,13 @@ public class DefaultArchivaTaskScheduler
return false;
}
-
+
// MRM-848: Pre-configured repository initially appear to be empty
private synchronized void queueInitialRepoScan( ManagedRepositoryConfiguration repoConfig )
{
- String repoId = repoConfig.getId();
- RepositoryTask task = TaskCreator.createRepositoryTask( repoId );
+ String repoId = repoConfig.getId();
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repoId );
if ( !queuedRepos.contains( repoId ) )
{
@@ -388,7 +289,7 @@ public class DefaultArchivaTaskScheduler
try
{
queuedRepos.add( repoConfig.getId() );
- this.queueRepositoryTask( task );
+ this.queueTask( task );
}
catch ( TaskQueueException e )
{
@@ -396,7 +297,7 @@ public class DefaultArchivaTaskScheduler
}
}
}
-
+
private synchronized void scheduleRepositoryJobs( ManagedRepositoryConfiguration repoConfig )
throws SchedulerException
{
@@ -405,7 +306,7 @@ public class DefaultArchivaTaskScheduler
log.warn( "Skipping job, no cron expression for " + repoConfig.getId() );
return;
}
-
+
if ( !repoConfig.isScanned() )
{
log.warn( "Skipping job, repository scannable has been disabled for " + repoConfig.getId() );
@@ -428,8 +329,8 @@ public class DefaultArchivaTaskScheduler
new JobDetail( REPOSITORY_JOB + ":" + repoConfig.getId(), REPOSITORY_SCAN_GROUP, RepositoryTaskJob.class );
JobDataMap dataMap = new JobDataMap();
- dataMap.put( DefaultArchivaTaskScheduler.TASK_QUEUE, repositoryScanningQueue );
- dataMap.put( DefaultArchivaTaskScheduler.TASK_REPOSITORY, repoConfig.getId() );
+ dataMap.put( TASK_QUEUE, repositoryScanningQueue );
+ dataMap.put( TASK_REPOSITORY, repoConfig.getId() );
repositoryJob.setJobDataMap( dataMap );
try
@@ -448,38 +349,4 @@ public class DefaultArchivaTaskScheduler
}
}
-
- private synchronized void scheduleDatabaseJobs()
- throws SchedulerException
- {
- String cronString = archivaConfiguration.getConfiguration().getDatabaseScanning().getCronExpression();
-
- // setup the unprocessed artifact job
- JobDetail databaseJob = new JobDetail( DATABASE_JOB, DATABASE_SCAN_GROUP, DatabaseTaskJob.class );
-
- JobDataMap dataMap = new JobDataMap();
- dataMap.put( TASK_QUEUE, databaseUpdateQueue );
- databaseJob.setJobDataMap( dataMap );
-
- CronExpressionValidator cronValidator = new CronExpressionValidator();
- if ( !cronValidator.validate( cronString ) )
- {
- log.warn(
- "Cron expression [" + cronString + "] for database update is invalid. Defaulting to hourly." );
- cronString = CRON_HOURLY;
- }
-
- try
- {
- CronTrigger trigger = new CronTrigger( DATABASE_JOB_TRIGGER, DATABASE_SCAN_GROUP, cronString );
-
- scheduler.scheduleJob( databaseJob, trigger );
- }
- catch ( ParseException e )
- {
- log.error(
- "ParseException in database scanning cron expression, disabling database scanning: " + e.getMessage() );
- }
-
- }
-}
+} \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTask.java
index 27dd5e787..94f55bee7 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTask.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.tasks;
+package org.apache.archiva.scheduler.repository;
import java.io.File;
diff --git a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTaskJob.java
index e0c34ae2c..ab265a5ea 100644
--- a/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryTaskJob.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled;
+package org.apache.archiva.scheduler.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,8 +19,6 @@ package org.apache.maven.archiva.scheduled;
* under the License.
*/
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.codehaus.plexus.scheduler.AbstractJob;
import org.codehaus.plexus.taskqueue.TaskQueue;
import org.codehaus.plexus.taskqueue.TaskQueueException;
@@ -46,10 +44,11 @@ public class RepositoryTaskJob
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
setJobDataMap( dataMap );
- TaskQueue taskQueue = (TaskQueue) dataMap.get( DefaultArchivaTaskScheduler.TASK_QUEUE );
+ TaskQueue taskQueue = (TaskQueue) dataMap.get( RepositoryArchivaTaskScheduler.TASK_QUEUE );
- String repositoryId = (String) dataMap.get( DefaultArchivaTaskScheduler.TASK_REPOSITORY );
- RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId );
+ String repositoryId = (String) dataMap.get( RepositoryArchivaTaskScheduler.TASK_REPOSITORY );
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repositoryId );
try
{
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 000000000..d472d5a56
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" ?>
+<!--
+ ~ 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.
+ -->
+
+<component-set>
+ <components>
+ <!--
+ |
+ | Repository Scanning Task Queue / Executor
+ |
+ -->
+ <component>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>repository-scanning</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
+ <lifecycle-handler>plexus-configurable</lifecycle-handler>
+ <configuration>
+ <task-entry-evaluators>
+ </task-entry-evaluators>
+ <task-exit-evaluators>
+ </task-exit-evaluators>
+ <task-viability-evaluators>
+ </task-viability-evaluators>
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+ <role-hint>repository-scanning</role-hint>
+ <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+ <instantiation-strategy>singleton</instantiation-strategy>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+ <role-hint>repository-scanning</role-hint>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+ <role-hint>repository-scanning</role-hint>
+ </requirement>
+ </requirements>
+ <configuration>
+ <name>repository-scanning</name>
+ </configuration>
+ </component>
+ </components>
+</component-set>
diff --git a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
index 103d53dd9..a79db2a81 100644
--- a/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.scheduled.executors;
+package org.apache.archiva.scheduler.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -25,7 +25,6 @@ import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
@@ -36,7 +35,6 @@ import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.database.constraints.ArtifactsProcessedConstraint;
import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.model.RepositoryContentStatistics;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
import org.codehaus.plexus.jdo.JdoFactory;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
@@ -224,8 +222,8 @@ public class ArchivaRepositoryScanningTaskExecutorTest
File newArtifactGroup = new File( repoDir, "org/apache/archiva");
- FileUtils.copyDirectoryStructure( new File( getBasedir(), "target/test-classes/test-repo/org/apache/archiva"), newArtifactGroup );
-
+ FileUtils.copyDirectoryStructure( new File( getBasedir(), "target/test-classes/test-repo/org/apache/archiva"), newArtifactGroup );
+
// update last modified date
new File( newArtifactGroup, "archiva-index-methods-jar-test/1.0/pom.xml" ).setLastModified( Calendar.getInstance().getTimeInMillis() + 1000 );
new File( newArtifactGroup, "archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar" ).setLastModified( Calendar.getInstance().getTimeInMillis() + 1000 );
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/maven-metadata.xml
new file mode 100644
index 000000000..b3baf545d
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/maven-metadata.xml
@@ -0,0 +1,26 @@
+<?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.
+ -->
+
+<!-- This metdata is intentionally wrong. -->
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5
new file mode 100644
index 000000000..ef7483fad
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5
@@ -0,0 +1 @@
+d41d8cd98f00b204e9800998ecf8427e jdbc-2.0.jar \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1
new file mode 100644
index 000000000..4bc014766
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1
@@ -0,0 +1 @@
+da39a3ee5e6b4b0d3255bfef95601890afd80709 jdbc-2.0.jar \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
new file mode 100644
index 000000000..caf5b6697
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
new file mode 100644
index 000000000..bb7570891
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml
@@ -0,0 +1,30 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+ <versioning>
+ <versions>
+ <version>2.0</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
new file mode 100644
index 000000000..caf5b6697
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>javax.sql</groupId>
+ <artifactId>jdbc</artifactId>
+ <version>2.0</version>
+</metadata>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
new file mode 100644
index 000000000..202a0a448
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>A</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>war</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5
new file mode 100644
index 000000000..78a953bc5
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5
@@ -0,0 +1 @@
+bc479af1df809dbabb92e29548776b84 A-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1
new file mode 100644
index 000000000..71d6233aa
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1
@@ -0,0 +1 @@
+fbb4c97603c64f3915c88243e1ea49f1a238afa7 A-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5
new file mode 100644
index 000000000..665059bc7
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5
@@ -0,0 +1 @@
+fd4275a6811332d67075ffd879d13d4a A-1.0.war \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1
new file mode 100644
index 000000000..c8494eb9d
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9 A-1.0.war \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
new file mode 100644
index 000000000..fa5f8f6c8
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>B</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5
new file mode 100644
index 000000000..2324bce0c
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5
@@ -0,0 +1 @@
+c543ad342d1de7a4352fc9b0f42067b8 B-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1
new file mode 100644
index 000000000..d8d5abce7
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1
@@ -0,0 +1 @@
+be06d04d5824859253abf423394dc85d24971ba8 B-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
new file mode 100644
index 000000000..c3034e820
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>B</artifactId>
+ <version>2.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5
new file mode 100644
index 000000000..4ddd22b82
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5
@@ -0,0 +1 @@
+1af6c812f02f24e1ba287647a6856cd5 B-2.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1
new file mode 100644
index 000000000..95912764c
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1
@@ -0,0 +1 @@
+5d49f821499ab061c97457b3e6512fd1624a3033 B-2.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
new file mode 100644
index 000000000..ae14cd7eb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>C</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>war</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5
new file mode 100644
index 000000000..d08745961
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5
@@ -0,0 +1 @@
+90f5c062bded5f794cd4ea9479b35173 C-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1
new file mode 100644
index 000000000..fbe7bd338
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1
@@ -0,0 +1 @@
+fcefa8220d30b7aa72a1b7422cc06336ca14bb6f C-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
new file mode 100644
index 000000000..54d190b23
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5
new file mode 100644
index 000000000..4eb175498
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5
@@ -0,0 +1 @@
+fd4275a6811332d67075ffd879d13d4a C-1.0.war \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1
new file mode 100644
index 000000000..78e0b6eb7
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9 C-1.0.war \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
new file mode 100644
index 000000000..8ce7fc7bb
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml
@@ -0,0 +1,23 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.maven</groupId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
new file mode 100644
index 000000000..12538e81a
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+ <version>1.0</version>
+ <name>Maven Test Repository Artifact Discovery</name>
+ <packaging>pom</packaging>
+</project>
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5
new file mode 100644
index 000000000..b163670f2
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5
@@ -0,0 +1 @@
+764dd493029133aff4c0f7cb4be2d9b7 discovery-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1
new file mode 100644
index 000000000..dedf18ade
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1
@@ -0,0 +1 @@
+a7aaf680caaf5bb971753e047c439f3fd4efa473 discovery-1.0.pom \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
new file mode 100644
index 000000000..8ee18048c
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml
@@ -0,0 +1,25 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+ <version>1.0</version>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
new file mode 100644
index 000000000..b024ef7ef
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml
@@ -0,0 +1,24 @@
+<?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.
+ -->
+
+<metadata>
+ <groupId>org.apache.testgroup</groupId>
+ <artifactId>discovery</artifactId>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/archiva-test.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/archiva-test.xml
new file mode 100644
index 000000000..7721bb63e
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/archiva-test.xml
@@ -0,0 +1,119 @@
+<?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>
+ <managedRepositories>
+ <managedRepository>
+ <id>testRepo</id>
+ <name>Archiva Test Repository</name>
+ <location>${basedir}/src/test/repositories/default-repository</location>
+ <layout>default</layout>
+ <releases>true</releases>
+ <snapshots>false</snapshots>
+ <indexed>true</indexed>
+ <refreshCronExpression>0 0 * * * ?</refreshCronExpression>
+ </managedRepository>
+ </managedRepositories>
+
+ <proxyConnectors />
+
+ <networkProxies />
+
+ <repositoryScanning>
+ <fileTypes>
+ <fileType>
+ <id>artifacts</id>
+ <patterns>
+ <pattern>**/*.pom</pattern>
+ <pattern>**/*.jar</pattern>
+ <pattern>**/*.ear</pattern>
+ <pattern>**/*.war</pattern>
+ <pattern>**/*.car</pattern>
+ <pattern>**/*.sar</pattern>
+ <pattern>**/*.mar</pattern>
+ <pattern>**/*.rar</pattern>
+ <pattern>**/*.dtd</pattern>
+ <pattern>**/*.tld</pattern>
+ <pattern>**/*.tar.gz</pattern>
+ <pattern>**/*.tar.bz2</pattern>
+ <pattern>**/*.zip</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>indexable-content</id>
+ <patterns>
+ <pattern>**/*.txt</pattern>
+ <pattern>**/*.TXT</pattern>
+ <pattern>**/*.block</pattern>
+ <pattern>**/*.config</pattern>
+ <pattern>**/*.pom</pattern>
+ <pattern>**/*.xml</pattern>
+ <pattern>**/*.xsd</pattern>
+ <pattern>**/*.dtd</pattern>
+ <pattern>**/*.tld</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>auto-remove</id>
+ <patterns>
+ <pattern>**/*.bak</pattern>
+ <pattern>**/*~</pattern>
+ <pattern>**/*-</pattern>
+ </patterns>
+ </fileType>
+ <fileType>
+ <id>ignored</id>
+ <patterns>
+ <pattern>**/.htaccess</pattern>
+ <pattern>**/KEYS</pattern>
+ <pattern>**/*.rb</pattern>
+ <pattern>**/*.sh</pattern>
+ <pattern>**/.svn/**</pattern>
+ <pattern>**/.DAV/**</pattern>
+ </patterns>
+ </fileType>
+ </fileTypes>
+ <knownContentConsumers>
+ <knownContentConsumer>update-db-artifact</knownContentConsumer>
+ <knownContentConsumer>create-missing-checksums</knownContentConsumer>
+ <knownContentConsumer>update-db-repository-metadata</knownContentConsumer>
+ <knownContentConsumer>validate-checksum</knownContentConsumer>
+ <knownContentConsumer>validate-signature</knownContentConsumer>
+ <knownContentConsumer>index-content</knownContentConsumer>
+ <knownContentConsumer>auto-remove</knownContentConsumer>
+ <knownContentConsumer>auto-rename</knownContentConsumer>
+ </knownContentConsumers>
+ <invalidContentConsumers>
+ <invalidContentConsumer>update-db-bad-content</invalidContentConsumer>
+ </invalidContentConsumers>
+ </repositoryScanning>
+
+ <databaseScanning>
+ <cronExpression>0 0 * * * ?</cronExpression>
+ <unprocessedConsumers>
+ <unprocessedConsumer>test-db-unprocessed</unprocessedConsumer>
+ <unprocessedConsumer>update-db-artifact</unprocessedConsumer>
+ </unprocessedConsumers>
+ <cleanupConsumers>
+ <cleanupConsumer>test-db-cleanup</cleanupConsumer>
+ </cleanupConsumers>
+ </databaseScanning>
+
+</configuration>
diff --git a/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.xml
index f903ba33f..183d77281 100644
--- a/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.xml
@@ -23,7 +23,7 @@
<component>
<role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
<role-hint>test-repository-scanning</role-hint>
- <implementation>org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor
+ <implementation>org.apache.archiva.scheduler.repository.ArchivaRepositoryScanningTaskExecutor
</implementation>
<description></description>
<requirements>
@@ -37,7 +37,7 @@
<field-name>archivaConfiguration</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.repository.scanner.RepositoryScanner</role>
+ <role>org.apache.archiva.repository.scanner.RepositoryScanner</role>
<field-name>repoScanner</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar
index cc03dacc1..cc03dacc1 100644
--- a/archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar
Binary files differ
diff --git a/archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml
index e7bf54bda..e7bf54bda 100644
--- a/archiva-modules/archiva-scheduled/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml
diff --git a/archiva-modules/archiva-scheduler/pom.xml b/archiva-modules/archiva-scheduler/pom.xml
new file mode 100644
index 000000000..a08c13faf
--- /dev/null
+++ b/archiva-modules/archiva-scheduler/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-modules</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-scheduler</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva Base :: Scheduled Tasks</name>
+ <modules>
+ <module>archiva-scheduler-api</module>
+ <module>archiva-scheduler-indexing</module>
+ <module>archiva-scheduler-database</module>
+ <module>archiva-scheduler-repository</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-web/archiva-applet/pom.xml b/archiva-modules/archiva-web/archiva-applet/pom.xml
index 402ae2208..af8cc7de2 100644
--- a/archiva-modules/archiva-web/archiva-applet/pom.xml
+++ b/archiva-modules/archiva-web/archiva-applet/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-applet</artifactId>
<name>Archiva Web :: Applet</name>
diff --git a/archiva-modules/archiva-web/archiva-rss/pom.xml b/archiva-modules/archiva-web/archiva-rss/pom.xml
index 5f4df508f..95633e203 100644
--- a/archiva-modules/archiva-web/archiva-rss/pom.xml
+++ b/archiva-modules/archiva-web/archiva-rss/pom.xml
@@ -22,7 +22,7 @@
<parent>
<artifactId>archiva-web</artifactId>
<groupId>org.apache.archiva</groupId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-rss</artifactId>
diff --git a/archiva-modules/archiva-web/archiva-security/pom.xml b/archiva-modules/archiva-web/archiva-security/pom.xml
index 109016582..7ad99695f 100644
--- a/archiva-modules/archiva-web/archiva-security/pom.xml
+++ b/archiva-modules/archiva-web/archiva-security/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-security</artifactId>
diff --git a/archiva-modules/archiva-web/archiva-webapp-test/pom.xml b/archiva-modules/archiva-web/archiva-webapp-test/pom.xml
index 9bd4939c3..d70d16632 100644
--- a/archiva-modules/archiva-web/archiva-webapp-test/pom.xml
+++ b/archiva-modules/archiva-web/archiva-webapp-test/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-webapp-test</artifactId>
<packaging>pom</packaging>
diff --git a/archiva-modules/archiva-web/archiva-webapp/pom.xml b/archiva-modules/archiva-web/archiva-webapp/pom.xml
index be255badf..bd09d0d15 100644
--- a/archiva-modules/archiva-web/archiva-webapp/pom.xml
+++ b/archiva-modules/archiva-web/archiva-webapp/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-webapp</artifactId>
<packaging>war</packaging>
@@ -39,7 +39,11 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
+ <artifactId>archiva-scheduler-repository</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-database</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
@@ -71,6 +75,12 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-metadata-consumer</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
<artifactId>archiva-lucene-consumers</artifactId>
</dependency>
<dependency>
@@ -249,6 +259,27 @@
<artifactId>atlassian-xmlrpc-binder-server-spring</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-model</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-file</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId> <!-- FIXME: temporary coupling to plugin, should be runtime -->
+ <artifactId>maven2-repository</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
<resources>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java
index 7d2d62b25..de5dc2d4d 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java
@@ -29,6 +29,8 @@ import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import com.opensymphony.xwork2.Preparable;
+import com.opensymphony.xwork2.Validateable;
import org.apache.archiva.checksum.ChecksumAlgorithm;
import org.apache.archiva.checksum.ChecksummedFile;
import org.apache.maven.archiva.common.utils.VersionComparator;
@@ -49,6 +51,7 @@ import org.apache.maven.archiva.repository.RepositoryException;
import org.apache.maven.archiva.repository.RepositoryNotFoundException;
import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.audit.Auditable;
+import org.apache.maven.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.repository.metadata.MetadataTools;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;
@@ -58,9 +61,6 @@ import org.apache.maven.archiva.security.ArchivaSecurityException;
import org.apache.maven.archiva.security.PrincipalNotFoundException;
import org.apache.maven.archiva.security.UserRepositories;
-import com.opensymphony.xwork2.Preparable;
-import com.opensymphony.xwork2.Validateable;
-
/**
* Delete an artifact. Metadata will be updated if one exists, otherwise it would be created.
*
@@ -120,6 +120,9 @@ public class DeleteArtifactAction
*/
private DatabaseConsumers databaseConsumers;
+ /** @plexus.requirement role="org.apache.maven.archiva.repository.events.RepositoryListener" */
+ private List<RepositoryListener> listeners;
+
private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
public String getGroupId()
@@ -242,7 +245,10 @@ public class DeleteArtifactAction
{
if ( artifact.getVersion().equals( version ) )
{
- databaseConsumers.executeCleanupConsumer( artifact );
+ for ( RepositoryListener listener : listeners )
+ {
+ listener.deleteArtifact( repository, artifact );
+ }
}
}
}
@@ -404,4 +410,9 @@ public class DeleteArtifactAction
}
return Collections.emptyList();
}
+
+ public List<RepositoryListener> getListeners()
+ {
+ return listeners;
+ }
}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
index 18facd580..f1b63ae2a 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
@@ -19,28 +19,37 @@ package org.apache.maven.archiva.web.action;
* under the License.
*/
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.opensymphony.xwork2.Validateable;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataResolver;
+import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet;
import org.apache.commons.lang.StringUtils;
-import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.ObjectNotFoundException;
import org.apache.maven.archiva.database.browsing.RepositoryBrowsing;
import org.apache.maven.archiva.model.ArchivaProjectModel;
+import org.apache.maven.archiva.model.CiManagement;
import org.apache.maven.archiva.model.Dependency;
+import org.apache.maven.archiva.model.IssueManagement;
+import org.apache.maven.archiva.model.License;
import org.apache.maven.archiva.model.MailingList;
+import org.apache.maven.archiva.model.Organization;
+import org.apache.maven.archiva.model.Scm;
+import org.apache.maven.archiva.model.VersionedReference;
import org.apache.maven.archiva.security.AccessDeniedException;
import org.apache.maven.archiva.security.ArchivaSecurityException;
import org.apache.maven.archiva.security.PrincipalNotFoundException;
import org.apache.maven.archiva.security.UserRepositories;
/**
- * Browse the repository.
- *
+ * Browse the repository.
+ *
* TODO change name to ShowVersionedAction to conform to terminology.
- *
+ *
* @plexus.component role="com.opensymphony.xwork2.Action" role-hint="showArtifactAction" instantiation-strategy="per-lookup"
*/
public class ShowArtifactAction
@@ -58,7 +67,12 @@ public class ShowArtifactAction
* @plexus.requirement
*/
private UserRepositories userRepositories;
-
+
+ /**
+ * @plexus.requirement
+ */
+ private MetadataResolver metadataResolver;
+
/* .\ Exposed Output Objects \.__________________________________ */
private String groupId;
@@ -82,45 +96,107 @@ public class ShowArtifactAction
private List<MailingList> mailingLists;
private List<Dependency> dependencies;
-
+
private List<String> snapshotVersions;
/**
- * Show the versioned project information tab. TODO: Change name to 'project'
+ * Show the versioned project information tab.
+ * TODO: Change name to 'project' - we are showing project versions here, not specific artifact information (though
+ * that is rendered in the download box).
*/
public String artifact()
- throws ObjectNotFoundException, ArchivaDatabaseException
{
- try
+ // In the future, this should be replaced by the repository grouping mechanism, so that we are only making
+ // simple resource requests here and letting the resolver take care of it
+ ProjectVersionMetadata versionMetadata = null;
+ snapshotVersions = new ArrayList<String>();
+ for ( String repoId : getObservableRepos() )
{
- if( VersionUtil.isSnapshot( version ) )
- {
- this.model =
- repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version );
-
- this.snapshotVersions =
- repoBrowsing.getOtherSnapshotVersions( getObservableRepos(), groupId, artifactId, version );
- if( this.snapshotVersions.contains( version ) )
+ if ( versionMetadata == null )
+ {
+ // TODO: though we have a simple mapping now, do we want to support paths like /1.0-20090111.123456-1/
+ // again by mapping it to /1.0-SNAPSHOT/? Currently, the individual versions are not supported as we
+ // are only displaying the project's single version.
+
+ // we don't want the implementation being that intelligent - so another resolver to do the
+ // "just-in-time" nature of picking up the metadata (if appropriate for the repository type) is used
+ versionMetadata = metadataResolver.getProjectVersion( repoId, groupId, artifactId, version );
+ if ( versionMetadata != null )
{
- this.snapshotVersions.remove( version );
+ repositoryId = repoId;
+
+ snapshotVersions.addAll(
+ metadataResolver.getArtifactVersions( repoId, groupId, artifactId, versionMetadata.getId() ) );
+ snapshotVersions.remove( version );
}
}
- else
- {
- this.model =
- repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version );
- }
-
- this.repositoryId =
- repoBrowsing.getRepositoryId( getPrincipal(), getObservableRepos(), groupId, artifactId, version );
}
- catch ( ObjectNotFoundException e )
+
+ if ( versionMetadata == null )
{
- log.debug( e.getMessage(), e );
- addActionError( e.getMessage() );
+ addActionError( "Artifact not found" );
return ERROR;
}
+ // TODO: eventually, move to just use the metadata directly, with minimal JSP changes, mostly for Maven specifics
+ model = new ArchivaProjectModel();
+ MavenProjectFacet projectFacet = (MavenProjectFacet) versionMetadata.getFacet( MavenProjectFacet.FACET_ID );
+ model.setGroupId( projectFacet.getGroupId() );
+ model.setArtifactId( projectFacet.getArtifactId() );
+ model.setPackaging( projectFacet.getPackaging() );
+ if ( projectFacet.getParent() != null )
+ {
+ VersionedReference parent = new VersionedReference();
+ parent.setGroupId( projectFacet.getParent().getGroupId() );
+ parent.setArtifactId( projectFacet.getParent().getArtifactId() );
+ parent.setVersion( projectFacet.getParent().getVersion() );
+ model.setParentProject( parent );
+ }
+
+ model.setVersion( versionMetadata.getId() );
+ model.setDescription( versionMetadata.getDescription() );
+ model.setName( versionMetadata.getName() );
+ model.setUrl( versionMetadata.getUrl() );
+ if ( versionMetadata.getOrganization() != null )
+ {
+ Organization organization = new Organization();
+ organization.setName( versionMetadata.getOrganization().getName() );
+ organization.setUrl( versionMetadata.getOrganization().getUrl() );
+ model.setOrganization( organization );
+ }
+ if ( versionMetadata.getCiManagement() != null )
+ {
+ CiManagement ci = new CiManagement();
+ ci.setSystem( versionMetadata.getCiManagement().getSystem() );
+ ci.setUrl( versionMetadata.getCiManagement().getUrl() );
+ model.setCiManagement( ci );
+ }
+ if ( versionMetadata.getIssueManagement() != null )
+ {
+ IssueManagement issueManagement = new IssueManagement();
+ issueManagement.setSystem( versionMetadata.getIssueManagement().getSystem() );
+ issueManagement.setUrl( versionMetadata.getIssueManagement().getUrl() );
+ model.setIssueManagement( issueManagement );
+ }
+ if ( versionMetadata.getScm() != null )
+ {
+ Scm scm = new Scm();
+ scm.setConnection( versionMetadata.getScm().getConnection() );
+ scm.setDeveloperConnection( versionMetadata.getScm().getDeveloperConnection() );
+ scm.setUrl( versionMetadata.getScm().getUrl() );
+ model.setScm( scm );
+ }
+ if ( versionMetadata.getLicenses() != null )
+ {
+ for ( org.apache.archiva.metadata.model.License l : versionMetadata.getLicenses() )
+ {
+ License license = new License();
+ license.setName( l.getName() );
+ license.setUrl( l.getUrl() );
+ model.addLicense( license );
+ }
+ }
+
return SUCCESS;
}
@@ -296,4 +372,8 @@ public class ShowArtifactAction
this.snapshotVersions = snapshotVersions;
}
+ public MetadataResolver getMetadataResolver()
+ {
+ return metadataResolver;
+ }
}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
index c61ba16ff..18cb2f64d 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
@@ -32,8 +32,12 @@ import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import com.opensymphony.xwork2.Preparable;
+import com.opensymphony.xwork2.Validateable;
import org.apache.archiva.checksum.ChecksumAlgorithm;
import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.common.utils.VersionComparator;
@@ -58,18 +62,12 @@ import org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter;
import org.apache.maven.archiva.repository.project.ProjectModelException;
import org.apache.maven.archiva.repository.project.ProjectModelWriter;
import org.apache.maven.archiva.repository.project.writers.ProjectModel400Writer;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.apache.maven.archiva.security.AccessDeniedException;
import org.apache.maven.archiva.security.ArchivaSecurityException;
import org.apache.maven.archiva.security.PrincipalNotFoundException;
import org.apache.maven.archiva.security.UserRepositories;
import org.codehaus.plexus.taskqueue.TaskQueueException;
-import com.opensymphony.xwork2.Preparable;
-import com.opensymphony.xwork2.Validateable;
-
/**
* Upload an artifact using Jakarta file upload in webwork. If set by the user a pom will also be generated. Metadata
* will also be updated if one exists, otherwise it would be created.
@@ -146,7 +144,7 @@ public class UploadAction
private RepositoryContentFactory repositoryFactory;
/**
- * @plexus.requirement
+ * @plexus.requirement role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="repository"
*/
private ArchivaTaskScheduler scheduler;
@@ -626,11 +624,15 @@ public class UploadAction
private void queueRepositoryTask( String repositoryId, File localFile )
{
- RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile, true, true );
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repositoryId );
+ task.setResourceFile( localFile );
+ task.setUpdateRelatedArtifacts( true );
+ task.setScanAll( true );
try
{
- scheduler.queueRepositoryTask( task );
+ scheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java
index c6eb4cb7b..f4cab02be 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java
@@ -19,11 +19,11 @@ package org.apache.maven.archiva.web.action.admin;
* under the License.
*/
+import org.apache.archiva.scheduler.database.DatabaseArchivaTaskScheduler;
+import org.apache.archiva.scheduler.database.DatabaseTask;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.commons.lang.StringUtils;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.apache.maven.archiva.web.action.PlexusActionSupport;
import org.codehaus.plexus.redback.rbac.Resource;
@@ -42,9 +42,14 @@ public class SchedulerAction
implements SecureAction
{
/**
- * @plexus.requirement
+ * @plexus.requirement role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="repository"
*/
- private ArchivaTaskScheduler taskScheduler;
+ private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
+
+ /**
+ * @plexus.requirement role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="database"
+ */
+ private DatabaseArchivaTaskScheduler databaseTaskScheduler;
private String repoid;
@@ -58,9 +63,11 @@ public class SchedulerAction
return SUCCESS;
}
- RepositoryTask task = TaskCreator.createRepositoryTask( repoid, scanAll );
-
- if ( taskScheduler.isProcessingRepositoryTask( repoid ) )
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repoid );
+ task.setScanAll( scanAll );
+
+ if ( repositoryTaskScheduler.isProcessingRepositoryTask( repoid ) )
{
addActionError( "Repository [" + repoid + "] task was already queued." );
}
@@ -69,7 +76,7 @@ public class SchedulerAction
try
{
addActionMessage( "Your request to have repository [" + repoid + "] be indexed has been queued." );
- taskScheduler.queueRepositoryTask( task );
+ repositoryTaskScheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
@@ -87,7 +94,7 @@ public class SchedulerAction
log.info( "Queueing database task on request from user interface" );
DatabaseTask task = new DatabaseTask();
- if ( taskScheduler.isProcessingDatabaseTask() )
+ if ( databaseTaskScheduler.isProcessingDatabaseTask() )
{
addActionError( "Database task was already queued." );
}
@@ -95,7 +102,7 @@ public class SchedulerAction
{
try
{
- taskScheduler.queueDatabaseTask( task );
+ databaseTaskScheduler.queueTask( task );
addActionMessage( "Your request to update the database has been queued." );
}
catch ( TaskQueueException e )
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java
index 7515fc2aa..58df2bbb3 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java
@@ -22,6 +22,7 @@ package org.apache.maven.archiva.web.action.admin.database;
import java.util.Collections;
import java.util.List;
+import com.opensymphony.xwork2.Preparable;
import org.apache.commons.collections.CollectionUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
@@ -38,8 +39,6 @@ import org.codehaus.redback.integration.interceptor.SecureAction;
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
import org.codehaus.redback.integration.interceptor.SecureActionException;
-import com.opensymphony.xwork2.Preparable;
-
/**
* DatabaseAction
*
@@ -72,16 +71,6 @@ public class DatabaseAction
*/
private List<String> enabledUnprocessedConsumers;
- /**
- * List of {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts.
- */
- private List<AdminDatabaseConsumer> cleanupConsumers;
-
- /**
- * List of enabled {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts.
- */
- private List<String> enabledCleanupConsumers;
-
public void prepare()
throws Exception
{
@@ -96,11 +85,6 @@ public class DatabaseAction
CollectionUtils.forAllDo( databaseConsumers.getAvailableUnprocessedConsumers(), addAdminDbConsumer );
this.unprocessedConsumers = addAdminDbConsumer.getList();
Collections.sort( this.unprocessedConsumers, AdminDatabaseConsumerComparator.getInstance() );
-
- addAdminDbConsumer = new AddAdminDatabaseConsumerClosure( dbscanning.getCleanupConsumers() );
- CollectionUtils.forAllDo( databaseConsumers.getAvailableCleanupConsumers(), addAdminDbConsumer );
- this.cleanupConsumers = addAdminDbConsumer.getList();
- Collections.sort( this.cleanupConsumers, AdminDatabaseConsumerComparator.getInstance() );
}
public String updateUnprocessedConsumers()
@@ -123,25 +107,6 @@ public class DatabaseAction
return saveConfiguration();
}
- public String updateCleanupConsumers()
- {
- List<String> oldConsumers = archivaConfiguration.getConfiguration().getDatabaseScanning().getCleanupConsumers();
-
- archivaConfiguration.getConfiguration().getDatabaseScanning().setCleanupConsumers( enabledCleanupConsumers );
-
- if ( enabledCleanupConsumers != null )
- {
- filterAddedConsumers( oldConsumers, enabledCleanupConsumers );
- filterRemovedConsumers( oldConsumers, enabledCleanupConsumers );
- }
- else
- {
- disableAllEnabledConsumers( oldConsumers );
- }
-
- return saveConfiguration();
- }
-
public String updateSchedule()
{
String oldCron = archivaConfiguration.getConfiguration().getDatabaseScanning().getCronExpression();
@@ -199,12 +164,7 @@ public class DatabaseAction
this.cron = cron;
}
- public List<AdminDatabaseConsumer> getCleanupConsumers()
- {
- return cleanupConsumers;
- }
-
- public List<AdminDatabaseConsumer> getUnprocessedConsumers()
+ public List getUnprocessedConsumers()
{
return unprocessedConsumers;
}
@@ -219,16 +179,6 @@ public class DatabaseAction
this.enabledUnprocessedConsumers = enabledUnprocessedConsumers;
}
- public List<String> getEnabledCleanupConsumers()
- {
- return enabledCleanupConsumers;
- }
-
- public void setEnabledCleanupConsumers( List<String> enabledCleanupConsumers )
- {
- this.enabledCleanupConsumers = enabledCleanupConsumers;
- }
-
public ArchivaConfiguration getArchivaConfiguration()
{
return archivaConfiguration;
@@ -238,7 +188,7 @@ public class DatabaseAction
{
this.archivaConfiguration = archivaConfiguration;
}
-
+
private void filterAddedConsumers( List<String> oldList, List<String> newList )
{
for ( String consumer : newList )
@@ -249,7 +199,7 @@ public class DatabaseAction
}
}
}
-
+
private void filterRemovedConsumers( List<String> oldList, List<String> newList )
{
for ( String consumer : oldList )
@@ -260,7 +210,7 @@ public class DatabaseAction
}
}
}
-
+
private void disableAllEnabledConsumers( List<String> enabledConsumers )
{
for( String consumer : enabledConsumers )
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
index 38a7df399..3f465c90a 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
@@ -24,6 +24,9 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
+import com.opensymphony.xwork2.Preparable;
+import com.opensymphony.xwork2.Validateable;
+import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -35,7 +38,6 @@ import org.apache.maven.archiva.configuration.functors.FiletypeSelectionPredicat
import org.apache.maven.archiva.configuration.functors.FiletypeToMapClosure;
import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.audit.Auditable;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.apache.maven.archiva.web.action.PlexusActionSupport;
import org.codehaus.plexus.redback.rbac.Resource;
@@ -44,9 +46,6 @@ import org.codehaus.redback.integration.interceptor.SecureAction;
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
import org.codehaus.redback.integration.interceptor.SecureActionException;
-import com.opensymphony.xwork2.Preparable;
-import com.opensymphony.xwork2.Validateable;
-
/**
* RepositoryScanningAction
*
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
index 9adf31458..fb3984362 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java
@@ -22,8 +22,10 @@ package org.apache.maven.archiva.web.startup;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.scheduler.database.DatabaseArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
import org.apache.maven.archiva.common.ArchivaException;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
import org.springframework.context.ApplicationContext;
@@ -32,28 +34,36 @@ import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
- * ArchivaStartup - the startup of all archiva features in a deterministic order.
+ * ArchivaStartup - the startup of all archiva features in a deterministic order.
*
* @version $Id$
*/
public class ArchivaStartup
implements ServletContextListener
{
- public void contextInitialized(ServletContextEvent contextEvent) {
- WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(contextEvent.getServletContext());
-
- SecuritySynchronization securitySync = (SecuritySynchronization) wac.getBean(PlexusToSpringUtils.buildSpringId(SecuritySynchronization.class));
- ResolverFactoryInit resolverFactory = (ResolverFactoryInit) wac.getBean(PlexusToSpringUtils.buildSpringId(ResolverFactoryInit.class));
- ArchivaTaskScheduler taskScheduler = (ArchivaTaskScheduler) wac.getBean(PlexusToSpringUtils.buildSpringId(ArchivaTaskScheduler.class));
- wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, "database-update"));
- wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, "repository-scanning"));
- wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, "indexing"));
+ public void contextInitialized( ServletContextEvent contextEvent )
+ {
+ WebApplicationContext wac =
+ WebApplicationContextUtils.getRequiredWebApplicationContext( contextEvent.getServletContext() );
+
+ SecuritySynchronization securitySync =
+ (SecuritySynchronization) wac.getBean( PlexusToSpringUtils.buildSpringId( SecuritySynchronization.class ) );
+ ResolverFactoryInit resolverFactory =
+ (ResolverFactoryInit) wac.getBean( PlexusToSpringUtils.buildSpringId( ResolverFactoryInit.class ) );
+ DatabaseArchivaTaskScheduler databaseTaskScheduler = (DatabaseArchivaTaskScheduler) wac.getBean(
+ PlexusToSpringUtils.buildSpringId( ArchivaTaskScheduler.class, "database" ) );
+ RepositoryArchivaTaskScheduler repositoryTaskScheduler = (RepositoryArchivaTaskScheduler) wac.getBean(
+ PlexusToSpringUtils.buildSpringId( ArchivaTaskScheduler.class, "repository" ) );
+ wac.getBean( PlexusToSpringUtils.buildSpringId( TaskQueueExecutor.class, "database-update" ) );
+ wac.getBean( PlexusToSpringUtils.buildSpringId( TaskQueueExecutor.class, "repository-scanning" ) );
+ wac.getBean( PlexusToSpringUtils.buildSpringId( TaskQueueExecutor.class, "indexing" ) );
try
{
securitySync.startup();
resolverFactory.startup();
- taskScheduler.startup();
+ databaseTaskScheduler.startup();
+ repositoryTaskScheduler.startup();
Banner.display();
}
catch ( ArchivaException e )
@@ -62,12 +72,13 @@ public class ArchivaStartup
}
}
- public void contextDestroyed(ServletContextEvent contextEvent)
+ public void contextDestroyed( ServletContextEvent contextEvent )
{
- ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(contextEvent.getServletContext());
- if (applicationContext != null && applicationContext instanceof ClassPathXmlApplicationContext)
+ ApplicationContext applicationContext =
+ WebApplicationContextUtils.getRequiredWebApplicationContext( contextEvent.getServletContext() );
+ if ( applicationContext != null && applicationContext instanceof ClassPathXmlApplicationContext )
{
- ((ClassPathXmlApplicationContext)applicationContext).close();
+ ( (ClassPathXmlApplicationContext) applicationContext ).close();
}
}
}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp
index 71e0b0272..59324ff4b 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp
@@ -116,62 +116,6 @@
</c:otherwise>
</c:choose>
-<h2>Database - Artifact Cleanup Scanning</h2>
-
-<c:choose>
- <c:when test="${empty (cleanupConsumers)}">
- <%-- No Consumers. Eeek! --%>
- <strong>There are no consumers for artifact cleanup.</strong>
- </c:when>
- <c:otherwise>
- <%-- Display the consumers. --%>
-
- <s:form method="post" action="database!updateCleanupConsumers"
- namespace="/admin" validate="false" theme="simple">
- <table class="consumers">
- <tr>
- <th>&nbsp;</th>
- <th>Enabled?</th>
- <th>ID</th>
- <th>Description</th>
- </tr>
- <c:forEach items="${cleanupConsumers}" var="consumer" varStatus="i">
- <c:choose>
- <c:when test='${(i.index)%2 eq 0}'>
- <c:set var="bgcolor" value="even" scope="page" />
- </c:when>
- <c:otherwise>
- <c:set var="bgcolor" value="odd" scope="page" />
- </c:otherwise>
- </c:choose>
-
- <tr>
- <td class="${bgcolor}">
- <input type="checkbox" name="enabledCleanupConsumers" theme="simple" value="${consumer.id}" <c:if test="${consumer.enabled}">checked</c:if> />
- </td>
- <td class="${bgcolor}">
- <c:if test="${consumer.enabled}">
- <strong>enabled</strong>
- </c:if>
- </td>
- <td class="${bgcolor}">
- <code>${consumer.id}</code>
- </td>
- <td class="${bgcolor}">${consumer.description}</td>
- </tr>
- </c:forEach>
- <tr>
- <td colspan="4">
- <s:submit value="Update Consumers" />
- </td>
- </tr>
- </table>
- </s:form>
-
- </c:otherwise>
-</c:choose>
-
-
</div>
</div>
</body>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataResolver.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataResolver.java
new file mode 100644
index 000000000..2b48830dc
--- /dev/null
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataResolver.java
@@ -0,0 +1,73 @@
+package org.apache.archiva.metadata.repository.memory;
+
+/*
+ * 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 java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.repository.MetadataResolver;
+
+public class TestMetadataResolver
+ implements MetadataResolver
+{
+ private Map<String, ProjectVersionMetadata> projectVersions = new HashMap<String, ProjectVersionMetadata>();
+
+ private Map<String, List<String>> artifactVersions = new HashMap<String, List<String>>();
+
+ public ProjectMetadata getProject( String repoId, String namespace, String projectId )
+ {
+ ProjectMetadata metadata = new ProjectMetadata();
+ metadata.setNamespace( namespace );
+ metadata.setId( projectId );
+ return metadata;
+ }
+
+ public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId, String projectVersion )
+ {
+ return projectVersions.get( createMapKey( repoId, namespace, projectId, projectVersion ) );
+ }
+
+ public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId, String projectVersion )
+ {
+ List<String> versions = artifactVersions.get( createMapKey( repoId, namespace, projectId, projectVersion ) );
+ return ( versions != null ? versions : Collections.<String>emptyList() );
+ }
+
+ public void setProjectVersion( String repoId, String namespace, String projectId, ProjectVersionMetadata versionMetadata )
+ {
+ projectVersions.put( createMapKey( repoId, namespace, projectId, versionMetadata.getId() ), versionMetadata );
+ }
+
+ public void setArtifactVersions( String repoId, String namespace, String projectId, String version,
+ List<String> versions )
+ {
+ artifactVersions.put( createMapKey( repoId, namespace, projectId, version ), versions );
+ }
+
+ private String createMapKey( String repoId, String namespace, String projectId, String projectVersion )
+ {
+ return repoId + ":" + namespace + ":" + projectId + ":" + projectVersion;
+ }
+}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.java
new file mode 100644
index 000000000..45446707b
--- /dev/null
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.java
@@ -0,0 +1,36 @@
+package org.apache.maven.archiva.web.action;
+
+/*
+ * 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 com.opensymphony.xwork2.Action;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
+public class DeleteArtifactActionTest
+ extends PlexusInSpringTestCase
+{
+ public void testGetListeners()
+ throws Exception
+ {
+ DeleteArtifactAction action = (DeleteArtifactAction) lookup( Action.class.getName(), "deleteArtifactAction" );
+ assertNotNull( action );
+ assertNotNull( action.getListeners() );
+ assertFalse( action.getListeners().isEmpty() );
+ }
+}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java
index 259121a08..5d4ab0853 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java
@@ -24,25 +24,19 @@ import java.util.Collections;
import java.util.List;
import com.opensymphony.xwork2.Action;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.ArchivaDatabaseException;
-import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.ProjectModelDAO;
-import org.apache.maven.archiva.database.constraints.ArtifactsRelatedConstraint;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaArtifactModel;
+import org.apache.archiva.metadata.model.CiManagement;
+import org.apache.archiva.metadata.model.IssueManagement;
+import org.apache.archiva.metadata.model.License;
+import org.apache.archiva.metadata.model.Organization;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.Scm;
+import org.apache.archiva.metadata.repository.memory.TestMetadataResolver;
+import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet;
+import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectParent;
import org.apache.maven.archiva.model.ArchivaProjectModel;
-import org.apache.maven.archiva.model.CiManagement;
-import org.apache.maven.archiva.model.IssueManagement;
-import org.apache.maven.archiva.model.License;
-import org.apache.maven.archiva.model.Organization;
-import org.apache.maven.archiva.model.Scm;
-import org.apache.maven.archiva.model.VersionedReference;
import org.apache.maven.archiva.security.UserRepositories;
import org.apache.maven.archiva.security.UserRepositoriesStub;
-import org.apache.maven.archiva.web.action.admin.repositories.ArchivaDAOStub;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
-import org.easymock.MockControl;
public class ShowArtifactActionTest
extends PlexusInSpringTestCase
@@ -97,32 +91,28 @@ public class ShowArtifactActionTest
private static final String TEST_SCM_URL = "scmUrl";
- private ShowArtifactAction action;
-
private static final String TEST_SNAPSHOT_VERSION = "1.0-SNAPSHOT";
private static final String TEST_TS_SNAPSHOT_VERSION = "1.0-20091120.111111-1";
- private ArchivaDAOStub archivaDao;
-
private static final List<String> ALL_TEST_SNAPSHOT_VERSIONS =
Arrays.asList( TEST_TS_SNAPSHOT_VERSION, "1.0-20091120.222222-2", "1.0-20091123.333333-3" );
private static final String OTHER_TEST_REPO = "first-repo";
+ private ShowArtifactAction action;
+
+ private TestMetadataResolver metadataResolver;
+
public void testInstantiation()
{
assertFalse( action == lookup( Action.class, ACTION_HINT ) );
}
public void testGetArtifactUniqueRelease()
- throws ArchivaDatabaseException
{
- List<ArchivaArtifact> artifacts =
- Collections.singletonList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
setActionParameters();
@@ -130,9 +120,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertActionParameters( action );
ArchivaProjectModel model = action.getModel();
assertDefaultModel( model );
@@ -142,18 +129,15 @@ public class ShowArtifactActionTest
assertNull( action.getDependees() );
assertNull( action.getDependencies() );
assertNull( action.getMailingLists() );
- assertNull( action.getSnapshotVersions() );
+ assertTrue( action.getSnapshotVersions().isEmpty() );
}
public void testGetArtifactUniqueSnapshot()
- throws ArchivaDatabaseException
{
- List<ArchivaArtifact> artifacts =
- Collections.singletonList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, TEST_SNAPSHOT_VERSION, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION ) );
- archivaDao.setVersions( ALL_TEST_SNAPSHOT_VERSIONS );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_SNAPSHOT_VERSION ) );
+ metadataResolver.setArtifactVersions( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION,
+ ALL_TEST_SNAPSHOT_VERSIONS );
action.setGroupId( TEST_GROUP_ID );
action.setArtifactId( TEST_ARTIFACT_ID );
@@ -163,9 +147,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertEquals( TEST_GROUP_ID, action.getGroupId() );
assertEquals( TEST_ARTIFACT_ID, action.getArtifactId() );
assertEquals( TEST_SNAPSHOT_VERSION, action.getVersion() );
@@ -182,14 +163,11 @@ public class ShowArtifactActionTest
}
public void testGetArtifactUniqueSnapshotTimestamped()
- throws ArchivaDatabaseException
{
- List<ArchivaArtifact> artifacts =
- Collections.singletonList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_TS_SNAPSHOT_VERSION ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, TEST_TS_SNAPSHOT_VERSION, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_TS_SNAPSHOT_VERSION ) );
- archivaDao.setVersions( ALL_TEST_SNAPSHOT_VERSIONS );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_TS_SNAPSHOT_VERSION ) );
+ metadataResolver.setArtifactVersions( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_TS_SNAPSHOT_VERSION,
+ ALL_TEST_SNAPSHOT_VERSIONS );
action.setGroupId( TEST_GROUP_ID );
action.setArtifactId( TEST_ARTIFACT_ID );
@@ -199,9 +177,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertEquals( TEST_GROUP_ID, action.getGroupId() );
assertEquals( TEST_ARTIFACT_ID, action.getArtifactId() );
assertEquals( TEST_TS_SNAPSHOT_VERSION, action.getVersion() );
@@ -219,71 +194,49 @@ public class ShowArtifactActionTest
}
public void testGetMissingProject()
- throws ArchivaDatabaseException
{
- MockControl artifactDaoMockControl = createArtifactDaoMock( Collections.<ArchivaArtifact>emptyList(), 1 );
-
setActionParameters();
String result = action.artifact();
assertError( result );
- artifactDaoMockControl.verify();
-
assertActionParameters( action );
assertNoOutputFields();
}
public void testGetArtifactNoObservableRepos()
- throws ArchivaDatabaseException
{
setObservableRepos( Collections.<String>emptyList() );
setActionParameters();
- try
- {
- action.artifact();
-
- // Actually, it'd be better to have an error:
-// assertError( result );
-// assertActionParameters( action );
-// assertNoOutputFields();
- fail();
- }
- catch ( ArchivaDatabaseException e )
- {
- assertTrue( true );
- }
+ String result = action.artifact();
+
+ // Actually, it'd be better to have an error:
+ assertError( result );
+ assertActionParameters( action );
+ assertNoOutputFields();
}
public void testGetArtifactNotInObservableRepos()
- throws ArchivaDatabaseException
{
- List<ArchivaArtifact> artifacts = Collections.singletonList(
- createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, OTHER_TEST_REPO ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, 1 );
+ metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
setActionParameters();
String result = action.artifact();
assertError( result );
- artifactDaoMockControl.verify();
-
assertActionParameters( action );
assertNoOutputFields();
}
public void testGetArtifactOnlySeenInSecondObservableRepo()
- throws ArchivaDatabaseException
{
setObservableRepos( Arrays.asList( OTHER_TEST_REPO, TEST_REPO ) );
- List<ArchivaArtifact> artifacts =
- Collections.singletonList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
setActionParameters();
@@ -291,9 +244,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertActionParameters( action );
ArchivaProjectModel model = action.getModel();
assertDefaultModel( model );
@@ -303,19 +253,16 @@ public class ShowArtifactActionTest
assertNull( action.getDependees() );
assertNull( action.getDependencies() );
assertNull( action.getMailingLists() );
- assertNull( action.getSnapshotVersions() );
+ assertTrue( action.getSnapshotVersions().isEmpty() );
}
public void testGetArtifactSeenInBothObservableRepo()
- throws ArchivaDatabaseException
{
- setObservableRepos( Arrays.asList( OTHER_TEST_REPO, TEST_REPO ) );
- List<ArchivaArtifact> artifacts =
- Arrays.asList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ),
- createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, OTHER_TEST_REPO ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
+ setObservableRepos( Arrays.asList( TEST_REPO, OTHER_TEST_REPO ) );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
+ metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
setActionParameters();
@@ -323,9 +270,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertActionParameters( action );
ArchivaProjectModel model = action.getModel();
assertDefaultModel( model );
@@ -335,19 +279,16 @@ public class ShowArtifactActionTest
assertNull( action.getDependees() );
assertNull( action.getDependencies() );
assertNull( action.getMailingLists() );
- assertNull( action.getSnapshotVersions() );
+ assertTrue( action.getSnapshotVersions().isEmpty() );
}
public void testGetArtifactCanOnlyObserveInOneOfTwoRepos()
- throws ArchivaDatabaseException
{
setObservableRepos( Arrays.asList( TEST_REPO ) );
- List<ArchivaArtifact> artifacts =
- Arrays.asList( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, OTHER_TEST_REPO ),
- createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
- MockControl artifactDaoMockControl = createArtifactDaoMock( artifacts, 2 );
- MockControl projectDaoMockControl =
- createProjectDaoMock( createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ) );
+ metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
+ metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID,
+ createProjectModel( TEST_VERSION ) );
setActionParameters();
@@ -355,9 +296,6 @@ public class ShowArtifactActionTest
assertActionSuccess( action, result );
- artifactDaoMockControl.verify();
- projectDaoMockControl.verify();
-
assertActionParameters( action );
ArchivaProjectModel model = action.getModel();
assertDefaultModel( model );
@@ -367,7 +305,7 @@ public class ShowArtifactActionTest
assertNull( action.getDependees() );
assertNull( action.getDependencies() );
assertNull( action.getMailingLists() );
- assertNull( action.getSnapshotVersions() );
+ assertTrue( action.getSnapshotVersions().isEmpty() );
}
private void assertNoOutputFields()
@@ -376,7 +314,7 @@ public class ShowArtifactActionTest
assertNull( action.getDependees() );
assertNull( action.getDependencies() );
assertNull( action.getMailingLists() );
- assertNull( action.getSnapshotVersions() );
+ assertTrue( action.getSnapshotVersions().isEmpty() );
}
private void assertError( String result )
@@ -401,22 +339,18 @@ public class ShowArtifactActionTest
assertEquals( TEST_GROUP_ID, model.getGroupId() );
assertEquals( TEST_ARTIFACT_ID, model.getArtifactId() );
assertEquals( version, model.getVersion() );
- assertEquals( TEST_PACKAGING, model.getPackaging() );
assertEquals( TEST_URL, model.getUrl() );
assertEquals( TEST_NAME, model.getName() );
assertEquals( TEST_DESCRIPTION, model.getDescription() );
assertEquals( TEST_ORGANIZATION_NAME, model.getOrganization().getName() );
assertEquals( TEST_ORGANIZATION_URL, model.getOrganization().getUrl() );
assertEquals( 2, model.getLicenses().size() );
- License l = model.getLicenses().get( 0 );
+ org.apache.maven.archiva.model.License l = model.getLicenses().get( 0 );
assertEquals( TEST_LICENSE_NAME, l.getName() );
assertEquals( TEST_LICENSE_URL, l.getUrl() );
l = model.getLicenses().get( 1 );
assertEquals( TEST_LICENSE_NAME_2, l.getName() );
assertEquals( TEST_LICENSE_URL_2, l.getUrl() );
- assertEquals( TEST_PARENT_GROUP_ID, model.getParentProject().getGroupId() );
- assertEquals( TEST_PARENT_ARTIFACT_ID, model.getParentProject().getArtifactId() );
- assertEquals( TEST_PARENT_VERSION, model.getParentProject().getVersion() );
assertEquals( TEST_ISSUE_SYSTEM, model.getIssueManagement().getSystem() );
assertEquals( TEST_ISSUE_URL, model.getIssueManagement().getUrl() );
assertEquals( TEST_CI_SYSTEM, model.getCiManagement().getSystem() );
@@ -424,6 +358,11 @@ public class ShowArtifactActionTest
assertEquals( TEST_SCM_CONNECTION, model.getScm().getConnection() );
assertEquals( TEST_SCM_DEV_CONNECTION, model.getScm().getDeveloperConnection() );
assertEquals( TEST_SCM_URL, model.getScm().getUrl() );
+
+ assertEquals( TEST_PACKAGING, model.getPackaging() );
+ assertEquals( TEST_PARENT_GROUP_ID, model.getParentProject().getGroupId() );
+ assertEquals( TEST_PARENT_ARTIFACT_ID, model.getParentProject().getArtifactId() );
+ assertEquals( TEST_PARENT_VERSION, model.getParentProject().getVersion() );
}
private void setActionParameters()
@@ -447,21 +386,13 @@ public class ShowArtifactActionTest
assertTrue( action.getActionMessages().isEmpty() );
}
- private ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version )
+ private ProjectVersionMetadata createProjectModel( String version )
{
- ArchivaProjectModel model = new ArchivaProjectModel();
- model.setGroupId( groupId );
- model.setArtifactId( artifactId );
- model.setVersion( version );
- model.setPackaging( TEST_PACKAGING );
+ ProjectVersionMetadata model = new ProjectVersionMetadata();
+ model.setId( version );
model.setUrl( TEST_URL );
model.setName( TEST_NAME );
model.setDescription( TEST_DESCRIPTION );
- VersionedReference parent = new VersionedReference();
- parent.setGroupId( TEST_PARENT_GROUP_ID );
- parent.setArtifactId( TEST_PARENT_ARTIFACT_ID );
- parent.setVersion( TEST_PARENT_VERSION );
- model.setParentProject( parent );
CiManagement ci = new CiManagement();
ci.setSystem( TEST_CI_SYSTEM );
ci.setUrl( TEST_CI_URL );
@@ -470,10 +401,10 @@ public class ShowArtifactActionTest
issue.setSystem( TEST_ISSUE_SYSTEM );
issue.setUrl( TEST_ISSUE_URL );
model.setIssueManagement( issue );
- Organization org = new Organization();
- org.setName( TEST_ORGANIZATION_NAME );
- org.setUrl( TEST_ORGANIZATION_URL );
- model.setOrganization( org );
+ Organization organization = new Organization();
+ organization.setName( TEST_ORGANIZATION_NAME );
+ organization.setUrl( TEST_ORGANIZATION_URL );
+ model.setOrganization( organization );
License l = new License();
l.setName( TEST_LICENSE_NAME );
l.setUrl( TEST_LICENSE_URL );
@@ -487,59 +418,18 @@ public class ShowArtifactActionTest
scm.setDeveloperConnection( TEST_SCM_DEV_CONNECTION );
scm.setUrl( TEST_SCM_URL );
model.setScm( scm );
- return model;
- }
-
- private MockControl createArtifactDaoMock( List<ArchivaArtifact> artifacts, int count )
- throws ArchivaDatabaseException
- {
- return createArtifactDaoMock( artifacts, TEST_VERSION, count );
- }
-
- private MockControl createArtifactDaoMock( List<ArchivaArtifact> artifacts, String version, int count )
- throws ArchivaDatabaseException
- {
- // testing deeper than normal with the mocks as we intend to replace RepositoryBrowsing, not just the database
- // underneath it - those sections will be adjusted with a mock content repository later
- MockControl control = MockControl.createNiceControl( ArtifactDAO.class );
- ArtifactDAO dao = (ArtifactDAO) control.getMock();
- archivaDao.setArtifactDao( dao );
-
- ArtifactsRelatedConstraint c = new ArtifactsRelatedConstraint( TEST_GROUP_ID, TEST_ARTIFACT_ID, version );
- dao.queryArtifacts( c );
- control.setReturnValue( artifacts, count );
-
- control.replay();
- return control;
- }
- private MockControl createProjectDaoMock( ArchivaProjectModel project )
- throws ArchivaDatabaseException
- {
- MockControl control = MockControl.createNiceControl( ProjectModelDAO.class );
- ProjectModelDAO dao = (ProjectModelDAO) control.getMock();
- archivaDao.setProjectDao( dao );
-
- control.expectAndReturn(
- dao.getProjectModel( project.getGroupId(), project.getArtifactId(), project.getVersion() ), project );
-
- control.replay();
- return control;
- }
-
- private ArchivaArtifact createArtifact( String groupId, String artifactId, String version )
- {
- return createArtifact( groupId, artifactId, version, TEST_REPO );
- }
-
- private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String repoId )
- {
- ArchivaArtifactModel model = new ArchivaArtifactModel();
- model.setGroupId( groupId );
- model.setArtifactId( artifactId );
- model.setVersion( version );
- model.setRepositoryId( repoId );
- return new ArchivaArtifact( model );
+ MavenProjectFacet mavenProjectFacet = new MavenProjectFacet();
+ mavenProjectFacet.setGroupId( TEST_GROUP_ID );
+ mavenProjectFacet.setArtifactId( TEST_ARTIFACT_ID );
+ mavenProjectFacet.setPackaging( TEST_PACKAGING );
+ MavenProjectParent parent = new MavenProjectParent();
+ parent.setGroupId( TEST_PARENT_GROUP_ID );
+ parent.setArtifactId( TEST_PARENT_ARTIFACT_ID );
+ parent.setVersion( TEST_PARENT_VERSION );
+ mavenProjectFacet.setParent( parent );
+ model.addFacet( mavenProjectFacet );
+ return model;
}
protected void setUp()
@@ -547,6 +437,6 @@ public class ShowArtifactActionTest
{
super.setUp();
action = (ShowArtifactAction) lookup( Action.class, ACTION_HINT );
- archivaDao = (ArchivaDAOStub) lookup( ArchivaDAO.class, "jdo" );
+ metadataResolver = (TestMetadataResolver) action.getMetadataResolver();
}
}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
index f86660c56..9131af530 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
@@ -23,8 +23,10 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import com.opensymphony.xwork2.Action;
import org.apache.archiva.checksum.ChecksumAlgorithm;
import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -36,13 +38,10 @@ import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.RepositoryNotFoundException;
import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
import org.apache.maven.archiva.repository.metadata.MetadataTools;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;
-import com.opensymphony.xwork2.Action;
-
/**
* UploadActionTest
*/
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/database/DatabaseActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/database/DatabaseActionTest.java
index a47535ea5..361c1dd4b 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/database/DatabaseActionTest.java
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/database/DatabaseActionTest.java
@@ -72,7 +72,6 @@ public class DatabaseActionTest
config.setDatabaseScanning( databaseScanningConfig );
setUpEnabledUnproccessedConsumers();
- setUpEnabledCleanupConsumers();
action.setArchivaConfiguration( archivaConfig );
}
@@ -101,24 +100,6 @@ public class DatabaseActionTest
assertEquals( 3, results.size() );
}
- public void testUpdateCleanUpConsumers()
- throws Exception
- {
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
-
- archivaConfig.save( config );
- archivaConfigControl.replay();
-
- String returnString = action.updateCleanupConsumers();
-
- List<String> results = config.getDatabaseScanning().getCleanupConsumers();
-
- assertEquals( action.SUCCESS, returnString );
- assertEquals( 3, results.size() );
- }
-
public void testDisableAllUnprocessedConsumers( )
throws Exception
{
@@ -139,26 +120,6 @@ public class DatabaseActionTest
assertEquals( 0, results.size() );
}
- public void testDisableAllCleanupConsumers( )
- throws Exception
- {
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
- archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
-
- archivaConfig.save( config );
- archivaConfigControl.replay();
-
- action.setEnabledCleanupConsumers( null );
-
- String returnString = action.updateCleanupConsumers();
-
- List<String> results = config.getDatabaseScanning().getCleanupConsumers();
-
- assertEquals( action.SUCCESS, returnString );
- assertEquals( 0, results.size() );
- }
-
private void setUpEnabledUnproccessedConsumers( )
{
List<String> enabledUnprocessedConsumer = new ArrayList<String>();
@@ -168,17 +129,5 @@ public class DatabaseActionTest
enabledUnprocessedConsumer.add( "validate-repository-metadata" );
action.setEnabledUnprocessedConsumers( enabledUnprocessedConsumer );
- }
-
- private void setUpEnabledCleanupConsumers( )
- {
- List<String> enabledCleanupConsumers = new ArrayList<String>();
-
- enabledCleanupConsumers.add( "not-present-remove-db-artifact" );
- enabledCleanupConsumers.add( "not-present-remove-db-project" );
- enabledCleanupConsumers.add( "not-present-remove-indexed" );
-
- action.setEnabledCleanupConsumers( enabledCleanupConsumers );
- }
-
+ }
}
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryProblemDAOStub.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryProblemDAOStub.java
new file mode 100644
index 000000000..8203c0d3d
--- /dev/null
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryProblemDAOStub.java
@@ -0,0 +1,55 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+import java.util.List;
+
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.database.ObjectNotFoundException;
+import org.apache.maven.archiva.database.RepositoryProblemDAO;
+import org.apache.maven.archiva.model.RepositoryProblem;
+
+/*
+ * 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.
+ */
+
+/**
+ * Stub class for Archiva DAO to avoid having to set up a database for tests.
+ *
+ * @todo a mock would be better, but that won't play nicely with Plexus injection.
+ */
+public class RepositoryProblemDAOStub
+ implements RepositoryProblemDAO
+{
+ public List<RepositoryProblem> queryRepositoryProblems( Constraint constraint )
+ throws ObjectNotFoundException, ArchivaDatabaseException
+ {
+ throw new UnsupportedOperationException( "not implemented for stub" );
+ }
+
+ public RepositoryProblem saveRepositoryProblem( RepositoryProblem problem )
+ throws ArchivaDatabaseException
+ {
+ throw new UnsupportedOperationException( "not implemented for stub" );
+ }
+
+ public void deleteRepositoryProblem( RepositoryProblem problem )
+ throws ArchivaDatabaseException
+ {
+ throw new UnsupportedOperationException( "not implemented for stub" );
+ }
+} \ No newline at end of file
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml
new file mode 100644
index 000000000..e2ebee50c
--- /dev/null
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml
@@ -0,0 +1,54 @@
+<!--
+ ~ 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.
+ -->
+
+<plexus>
+ <components>
+ <component>
+ <role>org.apache.maven.archiva.database.ArchivaDAO</role>
+ <role-hint>jdo</role-hint>
+ <implementation>org.apache.maven.archiva.web.action.admin.repositories.ArchivaDAOStub</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+ <field-name>configuration</field-name>
+ </requirement>
+ </requirements>
+ </component>
+ <component>
+ <role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
+ <role-hint>jdo</role-hint>
+ <implementation>org.apache.maven.archiva.web.action.admin.repositories.RepositoryProblemDAOStub</implementation>
+ </component>
+ <component>
+ <role>org.apache.maven.archiva.database.ProjectModelDAO</role>
+ <role-hint>jdo</role-hint>
+ <implementation>org.apache.maven.archiva.web.action.admin.repositories.ProjectModelDAOStub</implementation>
+ </component>
+ <component>
+ <role>org.apache.maven.archiva.database.ArtifactDAO</role>
+ <role-hint>jdo</role-hint>
+ <implementation>org.apache.maven.archiva.web.action.admin.repositories.ArtifactDAOStub</implementation>
+ </component>
+ <component>
+ <role>org.apache.maven.archiva.security.UserRepositories</role>
+ <role-hint>default</role-hint>
+ <implementation>org.apache.maven.archiva.security.UserRepositoriesStub</implementation>
+ </component>
+ </components>
+</plexus>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml
index d51572b7f..aab8338b6 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml
+++ b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml
@@ -35,5 +35,11 @@
<role-hint>default</role-hint>
<implementation>org.apache.maven.archiva.security.UserRepositoriesStub</implementation>
</component>
+ <component>
+ <role>org.apache.archiva.metadata.repository.MetadataResolver</role>
+ <role-hint>default</role-hint>
+ <implementation>org.apache.archiva.metadata.repository.memory.TestMetadataResolver</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ </component>
</components>
</plexus>
diff --git a/archiva-modules/archiva-web/archiva-webdav/pom.xml b/archiva-modules/archiva-web/archiva-webdav/pom.xml
index 743f14045..95341522e 100644
--- a/archiva-modules/archiva-web/archiva-webdav/pom.xml
+++ b/archiva-modules/archiva-web/archiva-webdav/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-webdav</artifactId>
@@ -36,11 +36,11 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-repository-layer</artifactId>
+ <artifactId>archiva-repository-scanner</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
index 113aba0e5..eff87127e 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
@@ -25,9 +25,11 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-
import javax.servlet.http.HttpServletResponse;
+import org.apache.archiva.scheduler.ArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.util.Text;
@@ -56,9 +58,6 @@ import org.apache.jackrabbit.webdav.property.ResourceType;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.audit.AuditListener;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.apache.maven.archiva.webdav.util.IndexWriter;
import org.apache.maven.archiva.webdav.util.MimeTypes;
import org.codehaus.plexus.taskqueue.TaskQueueException;
@@ -108,7 +107,7 @@ public class ArchivaDavResource
public ArchivaDavResource( String localResource, String logicalResource, ManagedRepositoryConfiguration repository,
DavSession session, ArchivaDavResourceLocator locator, DavResourceFactory factory,
MimeTypes mimeTypes, List<AuditListener> auditListeners,
- ArchivaTaskScheduler scheduler )
+ RepositoryArchivaTaskScheduler scheduler )
{
this.localResource = new File( localResource );
this.logicalResource = logicalResource;
@@ -128,7 +127,7 @@ public class ArchivaDavResource
public ArchivaDavResource( String localResource, String logicalResource, ManagedRepositoryConfiguration repository,
String remoteAddr, String principal, DavSession session, ArchivaDavResourceLocator locator,
DavResourceFactory factory, MimeTypes mimeTypes, List<AuditListener> auditListeners,
- ArchivaTaskScheduler scheduler )
+ RepositoryArchivaTaskScheduler scheduler )
{
this( localResource, logicalResource, repository, session, locator, factory, mimeTypes, auditListeners,
scheduler );
@@ -645,11 +644,15 @@ public class ArchivaDavResource
private void queueRepositoryTask( File localFile )
{
- RepositoryTask task = TaskCreator.createRepositoryTask( repository.getId(), localFile, false, true );
-
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repository.getId() );
+ task.setResourceFile( localFile );
+ task.setUpdateRelatedArtifacts( false );
+ task.setScanAll( true );
+
try
{
- scheduler.queueRepositoryTask( task );
+ scheduler.queueTask( task );
}
catch ( TaskQueueException e )
{
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
index a297659f5..c1cd85cf3 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
@@ -25,9 +25,9 @@ import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-
import javax.servlet.http.HttpServletResponse;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.jackrabbit.webdav.DavException;
@@ -61,7 +61,6 @@ import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataMerge;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;
import org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.apache.maven.archiva.security.ServletAuthenticator;
import org.apache.maven.archiva.webdav.util.MimeTypes;
import org.apache.maven.archiva.webdav.util.RepositoryPathUtil;
@@ -165,9 +164,9 @@ public class ArchivaDavResourceFactory
private Digester digestMd5;
/**
- * @plexus.requirement
+ * @plexus.requirement role="org.apache.archiva.scheduler.ArchivaTaskScheduler" role-hint="repository"
*/
- private ArchivaTaskScheduler scheduler;
+ private RepositoryArchivaTaskScheduler scheduler;
public DavResource createResource( final DavResourceLocator locator, final DavServletRequest request,
final DavServletResponse response )
@@ -1069,7 +1068,7 @@ public class ArchivaDavResourceFactory
this.httpAuth = httpAuth;
}
- public void setScheduler( ArchivaTaskScheduler scheduler )
+ public void setScheduler( RepositoryArchivaTaskScheduler scheduler )
{
this.scheduler = scheduler;
}
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
index 937907585..8b656d8ec 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
@@ -38,11 +38,9 @@ import org.apache.jackrabbit.webdav.lock.SimpleLockManager;
import org.apache.jackrabbit.webdav.lock.Type;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.repository.audit.AuditListener;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.webdav.util.MimeTypes;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
-import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
public class DavResourceTest
extends PlexusInSpringTestCase
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java
index 573895c58..2105b3b45 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java
@@ -1,11 +1,30 @@
package org.apache.maven.archiva.webdav;
-import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
+/*
+ * 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 java.util.List;
+
+import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
public class StubRepositoryContentConsumers
extends RepositoryContentConsumers
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml b/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml
index bd9196bdf..520a10d36 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml
@@ -131,6 +131,10 @@
<field-name>httpAuth</field-name>
</requirement>
<requirement>
+ <role>org.apache.archiva.repository.scanner.RepositoryContentConsumers</role>
+ <role-hint>default</role-hint>
+ </requirement>
+ <requirement>
<role>org.codehaus.plexus.digest.ChecksumFile</role>
<field-name>checksum</field-name>
</requirement>
@@ -145,7 +149,8 @@
<field-name>digestMd5</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml b/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml
index 74a63e922..78bdb75ab 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml
@@ -143,6 +143,10 @@
<field-name>httpAuth</field-name>
</requirement>
<requirement>
+ <role>org.apache.archiva.repository.scanner.RepositoryContentConsumers</role>
+ <role-hint>default</role-hint>
+ </requirement>
+ <requirement>
<role>org.codehaus.plexus.digest.ChecksumFile</role>
<field-name>checksum</field-name>
</requirement>
@@ -157,7 +161,8 @@
<field-name>digestMd5</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.archiva.scheduled.ArchivaTaskScheduler</role>
+ <role>org.apache.archiva.scheduler.ArchivaTaskScheduler</role>
+ <role-hint>repository</role-hint>
<field-name>scheduler</field-name>
</requirement>
</requirements>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/pom.xml
index 3a2f625ba..8a190a1e2 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/pom.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-xmlrpc-api</artifactId>
<name>Archiva Web :: XML-RPC API</name>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
index 98723d9ed..492d5b8d4 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>archiva-xmlrpc</artifactId>
<groupId>org.apache.archiva</groupId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-xmlrpc-client</artifactId>
@@ -63,7 +63,7 @@
<mainClass>org.apache.archiva.web.xmlrpc.client.SampleClient</mainClass>
<arguments>
<!--
- URL: ex. http://127.0.0.1:8080/archiva/xmlrpc
+ URL: ex. http://127.0.0.1:9091/xmlrpc
USERNAME & PASSWORD: Archiva credentials
-->
<argument>${archiva.url}/xmlrpc</argument>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/pom.xml
index 22391115a..62d2859a0 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/pom.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-security/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-xmlrpc-security</artifactId>
<name>Archiva Web :: XML-RPC Security</name>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml
index 5a545c48c..d960bdab9 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-xmlrpc-services</artifactId>
<name>Archiva Web :: XML-RPC Services</name>
@@ -52,7 +52,15 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
+ <artifactId>archiva-repository-scanner</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-repository</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-database</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
index 385db320a..c2aceb607 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
@@ -23,6 +23,11 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
+import org.apache.archiva.scheduler.database.DatabaseArchivaTaskScheduler;
+import org.apache.archiva.scheduler.database.DatabaseTask;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.archiva.web.xmlrpc.api.AdministrationService;
import org.apache.archiva.web.xmlrpc.api.beans.ManagedRepository;
import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository;
@@ -38,7 +43,6 @@ import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.database.constraints.ArtifactVersionsConstraint;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
import org.apache.maven.archiva.database.updater.DatabaseConsumers;
import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer;
import org.apache.maven.archiva.model.ArchivaArtifact;
@@ -49,42 +53,40 @@ import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.RepositoryException;
import org.apache.maven.archiva.repository.RepositoryNotFoundException;
import org.apache.maven.archiva.repository.events.RepositoryListener;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
-import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
import org.codehaus.plexus.registry.RegistryException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* AdministrationServiceImpl
- *
+ *
* @version $Id: AdministrationServiceImpl.java
*/
public class AdministrationServiceImpl
implements AdministrationService
-{
+{
protected Logger log = LoggerFactory.getLogger( getClass() );
private ArchivaConfiguration archivaConfiguration;
-
+
private RepositoryContentConsumers repoConsumersUtil;
-
+
private DatabaseConsumers dbConsumersUtil;
-
+
private RepositoryContentFactory repoFactory;
-
+
private ArtifactDAO artifactDAO;
-
- private ArchivaTaskScheduler taskScheduler;
-
+
+ private DatabaseArchivaTaskScheduler databaseTaskScheduler;
+
+ private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
+
private Collection<RepositoryListener> listeners;
public AdministrationServiceImpl( ArchivaConfiguration archivaConfig, RepositoryContentConsumers repoConsumersUtil,
DatabaseConsumers dbConsumersUtil, RepositoryContentFactory repoFactory,
- ArtifactDAO artifactDAO, ArchivaTaskScheduler taskScheduler,
+ ArtifactDAO artifactDAO, DatabaseArchivaTaskScheduler databaseTaskScheduler,
+ RepositoryArchivaTaskScheduler repositoryTaskScheduler,
Collection<RepositoryListener> listeners )
{
this.archivaConfiguration = archivaConfig;
@@ -92,63 +94,43 @@ public class AdministrationServiceImpl
this.dbConsumersUtil = dbConsumersUtil;
this.repoFactory = repoFactory;
this.artifactDAO = artifactDAO;
- this.taskScheduler = taskScheduler;
+ this.databaseTaskScheduler = databaseTaskScheduler;
+ this.repositoryTaskScheduler = repositoryTaskScheduler;
this.listeners = listeners;
}
-
+
/**
* @see AdministrationService#configureDatabaseConsumer(String, boolean)
*/
public Boolean configureDatabaseConsumer( String consumerId, boolean enable ) throws Exception
{
- List<DatabaseCleanupConsumer> cleanupConsumers = dbConsumersUtil.getAvailableCleanupConsumers();
List<DatabaseUnprocessedArtifactConsumer> unprocessedConsumers =
dbConsumersUtil.getAvailableUnprocessedConsumers();
-
+
boolean found = false;
- boolean isCleanupConsumer = false;
- for( DatabaseCleanupConsumer consumer : cleanupConsumers )
+
+ for( DatabaseUnprocessedArtifactConsumer consumer : unprocessedConsumers )
{
if( consumer.getId().equals( consumerId ) )
{
found = true;
- isCleanupConsumer = true;
break;
}
}
-
- if( !found )
- {
- for( DatabaseUnprocessedArtifactConsumer consumer : unprocessedConsumers )
- {
- if( consumer.getId().equals( consumerId ) )
- {
- found = true;
- break;
- }
- }
- }
-
+
if( !found )
{
throw new Exception( "Invalid database consumer." );
}
-
+
Configuration config = archivaConfiguration.getConfiguration();
DatabaseScanningConfiguration dbScanningConfig = config.getDatabaseScanning();
-
- if( isCleanupConsumer )
- {
- dbScanningConfig.addCleanupConsumer( consumerId );
- }
- else
- {
- dbScanningConfig.addUnprocessedConsumer( consumerId );
- }
-
- config.setDatabaseScanning( dbScanningConfig );
+
+ dbScanningConfig.addUnprocessedConsumer( consumerId );
+
+ config.setDatabaseScanning( dbScanningConfig );
saveConfiguration( config );
-
+
return new Boolean( true );
}
@@ -159,10 +141,10 @@ public class AdministrationServiceImpl
throws Exception
{
// TODO use repoId once consumers are configured per repository! (MRM-930)
-
+
List<KnownRepositoryContentConsumer> knownConsumers = repoConsumersUtil.getAvailableKnownConsumers();
List<InvalidRepositoryContentConsumer> invalidConsumers = repoConsumersUtil.getAvailableInvalidConsumers();
-
+
boolean found = false;
boolean isKnownContentConsumer = false;
for( KnownRepositoryContentConsumer consumer : knownConsumers )
@@ -174,7 +156,7 @@ public class AdministrationServiceImpl
break;
}
}
-
+
if( !found )
{
for( InvalidRepositoryContentConsumer consumer : invalidConsumers )
@@ -186,15 +168,15 @@ public class AdministrationServiceImpl
}
}
}
-
+
if( !found )
{
throw new Exception( "Invalid repository consumer." );
}
-
+
Configuration config = archivaConfiguration.getConfiguration();
RepositoryScanningConfiguration repoScanningConfig = config.getRepositoryScanning();
-
+
if( isKnownContentConsumer )
{
repoScanningConfig.addKnownContentConsumer( consumerId );
@@ -203,13 +185,13 @@ public class AdministrationServiceImpl
{
repoScanningConfig.addInvalidContentConsumer( consumerId );
}
-
- config.setRepositoryScanning( repoScanningConfig );
+
+ config.setRepositoryScanning( repoScanningConfig );
saveConfiguration( config );
-
+
return new Boolean( true );
}
-
+
/**
* @see AdministrationService#deleteArtifact(String, String, String, String)
*/
@@ -218,26 +200,26 @@ public class AdministrationServiceImpl
{
Configuration config = archivaConfiguration.getConfiguration();
ManagedRepositoryConfiguration repoConfig = config.findManagedRepositoryById( repoId );
-
+
if( repoConfig == null )
{
throw new Exception( "Repository does not exist." );
}
-
+
try
{
- ManagedRepositoryContent repoContent = repoFactory.getManagedRepositoryContent( repoId );
+ ManagedRepositoryContent repoContent = repoFactory.getManagedRepositoryContent( repoId );
VersionedReference ref = new VersionedReference();
ref.setGroupId( groupId );
ref.setArtifactId( artifactId );
ref.setVersion( version );
-
+
// delete from file system
repoContent.deleteVersion( ref );
-
+
ArtifactVersionsConstraint constraint = new ArtifactVersionsConstraint( repoId, groupId, artifactId, false );
List<ArchivaArtifact> artifacts = null;
-
+
try
{
artifacts = artifactDAO.queryArtifacts( constraint );
@@ -245,8 +227,8 @@ public class AdministrationServiceImpl
catch ( ArchivaDatabaseException e )
{
throw new Exception( "Error occurred while cleaning up database." );
- }
-
+ }
+
if ( artifacts != null )
{
for ( ArchivaArtifact artifact : artifacts )
@@ -273,7 +255,7 @@ public class AdministrationServiceImpl
{
throw new Exception( "Repository exception occurred." );
}
-
+
return new Boolean( true );
}
@@ -282,16 +264,16 @@ public class AdministrationServiceImpl
*/
public Boolean executeDatabaseScanner() throws Exception
{
- if ( taskScheduler.isProcessingDatabaseTask() )
+ if ( databaseTaskScheduler.isProcessingDatabaseTask() )
{
return false;
}
log.info( "Queueing database task on request from administration service" );
DatabaseTask task = new DatabaseTask();
-
- taskScheduler.queueDatabaseTask( task );
-
+
+ databaseTaskScheduler.queueTask( task );
+
return new Boolean( true );
}
@@ -305,16 +287,17 @@ public class AdministrationServiceImpl
{
throw new Exception( "Repository does not exist." );
}
-
- if ( taskScheduler.isProcessingRepositoryTask( repoId ) )
+
+ if ( repositoryTaskScheduler.isProcessingRepositoryTask( repoId ) )
{
return false;
}
- RepositoryTask task = TaskCreator.createRepositoryTask( repoId );
+ RepositoryTask task = new RepositoryTask();
+ task.setRepositoryId( repoId );
+
+ repositoryTaskScheduler.queueTask( task );
- taskScheduler.queueRepositoryTask( task );
-
return new Boolean( true );
}
@@ -324,20 +307,14 @@ public class AdministrationServiceImpl
public List<String> getAllDatabaseConsumers()
{
List<String> consumers = new ArrayList<String>();
-
- List<DatabaseCleanupConsumer> cleanupConsumers = dbConsumersUtil.getAvailableCleanupConsumers();
+
List<DatabaseUnprocessedArtifactConsumer> unprocessedConsumers = dbConsumersUtil.getAvailableUnprocessedConsumers();
-
- for( DatabaseCleanupConsumer consumer : cleanupConsumers )
- {
- consumers.add( consumer.getId() );
- }
-
+
for( DatabaseUnprocessedArtifactConsumer consumer : unprocessedConsumers )
{
consumers.add( consumer.getId() );
- }
-
+ }
+
return consumers;
}
@@ -347,15 +324,15 @@ public class AdministrationServiceImpl
public List<String> getAllRepositoryConsumers()
{
List<String> consumers = new ArrayList<String>();
-
+
List<KnownRepositoryContentConsumer> knownConsumers = repoConsumersUtil.getAvailableKnownConsumers();
List<InvalidRepositoryContentConsumer> invalidConsumers = repoConsumersUtil.getAvailableInvalidConsumers();
-
+
for( KnownRepositoryContentConsumer consumer : knownConsumers )
{
consumers.add( consumer.getId() );
}
-
+
for( InvalidRepositoryContentConsumer consumer : invalidConsumers )
{
consumers.add( consumer.getId() );
@@ -370,19 +347,19 @@ public class AdministrationServiceImpl
public List<ManagedRepository> getAllManagedRepositories()
{
List<ManagedRepository> managedRepos = new ArrayList<ManagedRepository>();
-
+
Configuration config = archivaConfiguration.getConfiguration();
List<ManagedRepositoryConfiguration> managedRepoConfigs = config.getManagedRepositories();
-
+
for( ManagedRepositoryConfiguration repoConfig : managedRepoConfigs )
{
// TODO fix resolution of repo url!
ManagedRepository repo =
new ManagedRepository( repoConfig.getId(), repoConfig.getName(), "URL", repoConfig.getLayout(),
- repoConfig.isSnapshots(), repoConfig.isReleases() );
+ repoConfig.isSnapshots(), repoConfig.isReleases() );
managedRepos.add( repo );
}
-
+
return managedRepos;
}
@@ -392,10 +369,10 @@ public class AdministrationServiceImpl
public List<RemoteRepository> getAllRemoteRepositories()
{
List<RemoteRepository> remoteRepos = new ArrayList<RemoteRepository>();
-
+
Configuration config = archivaConfiguration.getConfiguration();
List<RemoteRepositoryConfiguration> remoteRepoConfigs = config.getRemoteRepositories();
-
+
for( RemoteRepositoryConfiguration repoConfig : remoteRepoConfigs )
{
RemoteRepository repo =
@@ -403,7 +380,7 @@ public class AdministrationServiceImpl
repoConfig.getLayout() );
remoteRepos.add( repo );
}
-
+
return remoteRepos;
}
@@ -420,7 +397,7 @@ public class AdministrationServiceImpl
}
catch ( IndeterminateConfigurationException e )
{
- throw new Exception( "Error occurred while saving the configuration." );
+ throw new Exception( "Error occurred while saving the configuration." );
}
}
}
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
index 5089b289b..022f35cc9 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
@@ -25,6 +25,11 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
+import org.apache.archiva.scheduler.database.DatabaseArchivaTaskScheduler;
+import org.apache.archiva.scheduler.database.DatabaseTask;
+import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
+import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.archiva.web.xmlrpc.api.beans.ManagedRepository;
import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository;
import org.apache.commons.io.FileUtils;
@@ -39,7 +44,6 @@ import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.updater.DatabaseCleanupConsumer;
import org.apache.maven.archiva.database.updater.DatabaseConsumers;
import org.apache.maven.archiva.database.updater.DatabaseUnprocessedArtifactConsumer;
import org.apache.maven.archiva.model.ArchivaArtifact;
@@ -51,10 +55,6 @@ import org.apache.maven.archiva.repository.content.ManagedLegacyRepositoryConten
import org.apache.maven.archiva.repository.content.PathParser;
import org.apache.maven.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.repository.layout.LayoutException;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
-import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
-import org.apache.maven.archiva.scheduled.tasks.DatabaseTask;
-import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;
@@ -77,10 +77,14 @@ public class AdministrationServiceImplTest
private AdministrationServiceImpl service;
- private MockControl taskSchedulerControl;
+ private MockControl repositoryTaskSchedulerControl;
+
+ private MockControl databaseTaskSchedulerControl;
- private ArchivaTaskScheduler taskScheduler;
+ private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
+ private DatabaseArchivaTaskScheduler databaseTaskScheduler;
+
// repository consumers
private MockControl repoConsumerUtilsControl;
@@ -122,10 +126,6 @@ public class AdministrationServiceImplTest
private RepositoryListener listener;
- private DatabaseCleanupConsumer cleanupIndexConsumer;
-
- private DatabaseCleanupConsumer cleanupDbConsumer;
-
private MockControl cleanupConsumersControl;
protected void setUp()
@@ -139,9 +139,12 @@ public class AdministrationServiceImplTest
configControl = MockClassControl.createControl( Configuration.class );
config = ( Configuration ) configControl.getMock();
- taskSchedulerControl = MockControl.createControl( ArchivaTaskScheduler.class );
- taskScheduler = ( ArchivaTaskScheduler ) taskSchedulerControl.getMock();
+ databaseTaskSchedulerControl = MockClassControl.createControl( DatabaseArchivaTaskScheduler.class );
+ databaseTaskScheduler = (DatabaseArchivaTaskScheduler) databaseTaskSchedulerControl.getMock();
+ repositoryTaskSchedulerControl = MockClassControl.createControl( RepositoryArchivaTaskScheduler.class );
+ repositoryTaskScheduler = (RepositoryArchivaTaskScheduler) repositoryTaskSchedulerControl.getMock();
+
// repo consumers
repoConsumerUtilsControl = MockClassControl.createControl( RepositoryContentConsumers.class );
repoConsumersUtil = ( RepositoryContentConsumers ) repoConsumerUtilsControl.getMock();
@@ -158,10 +161,6 @@ public class AdministrationServiceImplTest
dbConsumersUtilControl = MockClassControl.createControl( DatabaseConsumers.class );
dbConsumersUtil = ( DatabaseConsumers ) dbConsumersUtilControl.getMock();
- cleanupConsumersControl = MockControl.createControl( DatabaseCleanupConsumer.class );
- cleanupIndexConsumer = (DatabaseCleanupConsumer) cleanupConsumersControl.getMock();
- cleanupDbConsumer = (DatabaseCleanupConsumer) cleanupConsumersControl.getMock();
-
unprocessedConsumersControl = MockControl.createControl( DatabaseUnprocessedArtifactConsumer.class );
processArtifactConsumer = ( DatabaseUnprocessedArtifactConsumer ) unprocessedConsumersControl.getMock();
processPomConsumer = ( DatabaseUnprocessedArtifactConsumer ) unprocessedConsumersControl.getMock();
@@ -178,7 +177,8 @@ public class AdministrationServiceImplTest
service =
new AdministrationServiceImpl( archivaConfig, repoConsumersUtil, dbConsumersUtil, repositoryFactory,
- artifactDao, taskScheduler, Collections.singletonList( listener ) );
+ artifactDao, databaseTaskScheduler, repositoryTaskScheduler,
+ Collections.singletonList( listener ) );
}
/* Tests for database consumers */
@@ -189,19 +189,15 @@ public class AdministrationServiceImplTest
recordDbConsumers();
dbConsumersUtilControl.replay();
- cleanupConsumersControl.replay();
unprocessedConsumersControl.replay();
List<String> dbConsumers = service.getAllDatabaseConsumers();
dbConsumersUtilControl.verify();
- cleanupConsumersControl.verify();
unprocessedConsumersControl.verify();
assertNotNull( dbConsumers );
- assertEquals( 4, dbConsumers.size() );
- assertTrue( dbConsumers.contains( "cleanup-index" ) );
- assertTrue( dbConsumers.contains( "cleanup-database" ) );
+ assertEquals( 2, dbConsumers.size() );
assertTrue( dbConsumers.contains( "process-artifact" ) );
assertTrue( dbConsumers.contains( "process-pom" ) );
}
@@ -228,7 +224,6 @@ public class AdministrationServiceImplTest
archivaConfigControl.setVoidCallable();
dbConsumersUtilControl.replay();
- cleanupConsumersControl.replay();
unprocessedConsumersControl.replay();
archivaConfigControl.replay();
configControl.replay();
@@ -244,14 +239,12 @@ public class AdministrationServiceImplTest
}
dbConsumersUtilControl.verify();
- cleanupConsumersControl.verify();
unprocessedConsumersControl.verify();
archivaConfigControl.verify();
configControl.verify();
// test disable "process-pom" db consumer
dbConsumersUtilControl.reset();
- cleanupConsumersControl.reset();
unprocessedConsumersControl.reset();
archivaConfigControl.reset();
configControl.reset();
@@ -271,7 +264,6 @@ public class AdministrationServiceImplTest
archivaConfigControl.setVoidCallable();
dbConsumersUtilControl.replay();
- cleanupConsumersControl.replay();
unprocessedConsumersControl.replay();
archivaConfigControl.replay();
configControl.replay();
@@ -287,7 +279,6 @@ public class AdministrationServiceImplTest
}
dbConsumersUtilControl.verify();
- cleanupConsumersControl.verify();
unprocessedConsumersControl.verify();
archivaConfigControl.verify();
configControl.verify();
@@ -299,7 +290,6 @@ public class AdministrationServiceImplTest
recordDbConsumers();
dbConsumersUtilControl.replay();
- cleanupConsumersControl.replay();
unprocessedConsumersControl.replay();
try
@@ -313,7 +303,6 @@ public class AdministrationServiceImplTest
}
dbConsumersUtilControl.verify();
- cleanupConsumersControl.verify();
unprocessedConsumersControl.verify();
}
@@ -642,15 +631,15 @@ public class AdministrationServiceImplTest
RepositoryTask task = new RepositoryTask();
- taskSchedulerControl.expectAndReturn( taskScheduler.isProcessingRepositoryTask( "internal" ), false );
+ repositoryTaskSchedulerControl.expectAndReturn( repositoryTaskScheduler.isProcessingRepositoryTask( "internal" ), false );
- taskScheduler.queueRepositoryTask( task );
- taskSchedulerControl.setMatcher( MockControl.ALWAYS_MATCHER );
- taskSchedulerControl.setVoidCallable();
+ repositoryTaskScheduler.queueTask( task );
+ repositoryTaskSchedulerControl.setMatcher( MockControl.ALWAYS_MATCHER );
+ repositoryTaskSchedulerControl.setVoidCallable();
archivaConfigControl.replay();
configControl.replay();
- taskSchedulerControl.replay();
+ repositoryTaskSchedulerControl.replay();
try
{
@@ -664,7 +653,7 @@ public class AdministrationServiceImplTest
archivaConfigControl.verify();
configControl.verify();
- taskSchedulerControl.verify();
+ repositoryTaskSchedulerControl.verify();
}
public void testExecuteRepoScannerRepoExistsButBeingScanned()
@@ -674,11 +663,11 @@ public class AdministrationServiceImplTest
configControl.expectAndReturn( config.findManagedRepositoryById( "internal" ),
createManagedRepo( "internal", "default", "Internal Repository", true, false ) );
- taskSchedulerControl.expectAndReturn( taskScheduler.isProcessingRepositoryTask( "internal" ), true);
+ repositoryTaskSchedulerControl.expectAndReturn( repositoryTaskScheduler.isProcessingRepositoryTask( "internal" ), true);
archivaConfigControl.replay();
configControl.replay();
- taskSchedulerControl.replay();
+ repositoryTaskSchedulerControl.replay();
try
{
@@ -692,7 +681,7 @@ public class AdministrationServiceImplTest
archivaConfigControl.verify();
configControl.verify();
- taskSchedulerControl.verify();
+ repositoryTaskSchedulerControl.verify();
}
public void testExecuteRepoScannerRepoDoesNotExist()
@@ -725,17 +714,17 @@ public class AdministrationServiceImplTest
{
DatabaseTask task = new DatabaseTask();
- taskSchedulerControl.expectAndReturn( taskScheduler.isProcessingDatabaseTask(), false );
+ databaseTaskSchedulerControl.expectAndReturn( databaseTaskScheduler.isProcessingDatabaseTask(), false );
- taskScheduler.queueDatabaseTask( task );
- taskSchedulerControl.setMatcher( MockControl.ALWAYS_MATCHER );
- taskSchedulerControl.setVoidCallable();
+ databaseTaskScheduler.queueTask( task );
+ databaseTaskSchedulerControl.setMatcher( MockControl.ALWAYS_MATCHER );
+ databaseTaskSchedulerControl.setVoidCallable();
- taskSchedulerControl.replay();
+ databaseTaskSchedulerControl.replay();
boolean success = service.executeDatabaseScanner();
- taskSchedulerControl.verify();
+ databaseTaskSchedulerControl.verify();
assertTrue( success );
}
@@ -743,13 +732,13 @@ public class AdministrationServiceImplTest
public void testExecuteDbScannerDbIsBeingScanned()
throws Exception
{
- taskSchedulerControl.expectAndReturn( taskScheduler.isProcessingDatabaseTask(), true );
+ databaseTaskSchedulerControl.expectAndReturn( databaseTaskScheduler.isProcessingDatabaseTask(), true );
- taskSchedulerControl.replay();
+ databaseTaskSchedulerControl.replay();
boolean success = service.executeDatabaseScanner();
- taskSchedulerControl.verify();
+ databaseTaskSchedulerControl.verify();
assertFalse( success );
}
@@ -873,19 +862,11 @@ public class AdministrationServiceImplTest
private void recordDbConsumers()
{
- List<DatabaseCleanupConsumer> cleanupConsumers = new ArrayList<DatabaseCleanupConsumer>();
- cleanupConsumers.add( cleanupIndexConsumer );
- cleanupConsumers.add( cleanupDbConsumer );
-
List<DatabaseUnprocessedArtifactConsumer> unprocessedConsumers =
new ArrayList<DatabaseUnprocessedArtifactConsumer>();
unprocessedConsumers.add( processArtifactConsumer );
unprocessedConsumers.add( processPomConsumer );
- dbConsumersUtilControl.expectAndReturn( dbConsumersUtil.getAvailableCleanupConsumers(), cleanupConsumers );
- cleanupConsumersControl.expectAndReturn( cleanupIndexConsumer.getId(), "cleanup-index" );
- cleanupConsumersControl.expectAndReturn( cleanupDbConsumer.getId(), "cleanup-database" );
-
dbConsumersUtilControl.expectAndReturn( dbConsumersUtil.getAvailableUnprocessedConsumers(), unprocessedConsumers );
unprocessedConsumersControl.expectAndReturn( processArtifactConsumer.getId(), "process-artifact" );
unprocessedConsumersControl.expectAndReturn( processPomConsumer.getId(), "process-pom" );
diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/pom.xml
index 6ada36255..923bd525c 100644
--- a/archiva-modules/archiva-web/archiva-xmlrpc/pom.xml
+++ b/archiva-modules/archiva-web/archiva-xmlrpc/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-web</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-xmlrpc</artifactId>
<name>Archiva Web :: XML-RPC</name>
diff --git a/archiva-modules/archiva-web/pom.xml b/archiva-modules/archiva-web/pom.xml
index ef7076a30..c65901d1a 100644
--- a/archiva-modules/archiva-web/pom.xml
+++ b/archiva-modules/archiva-web/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-modules</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<artifactId>archiva-web</artifactId>
diff --git a/archiva-modules/metadata/content-model.txt b/archiva-modules/metadata/content-model.txt
new file mode 100644
index 000000000..6f9511572
--- /dev/null
+++ b/archiva-modules/metadata/content-model.txt
@@ -0,0 +1,58 @@
+The following is the intended content model for the metadata content repository:
+
+.
+`-- repositories/
+ `-- central/
+ |-- config/
+ | |-- name=
+ | |-- storageUrl=
+ | `-- uri=
+ |-- content/
+ | `-- org/
+ | `-- apache/
+ | `-- archiva/
+ | `-- platform/ -- these are known as the namespace, of arbitrary depth. Equiv to groupId in Maven
+ | `-- scanner/ -- this is the project - equivalent to artifactId in Maven
+ | |-- 1.0-SNAPSHOT/ -- this is the version best used to describe the project ("marketed version")
+ | | |-- scanner-1.0-20091120.012345-1.pom/ -- filename is a node, each is distinct except for checksums, etc.
+ | | | |-- asc=
+ | | | |-- created=
+ | | | |-- maven:buildNumber=
+ | | | |-- maven:packaging=
+ | | | |-- maven:timestamp=
+ | | | |-- md5=
+ | | | |-- sha1=
+ | | | |-- size=
+ | | | |-- updated=
+ | | | `-- version= -- the actual version of the file, 1.0-20091120.012345-1
+ | | |-- created=
+ | | |-- description=
+ | | |-- name=
+ | | |-- organization.name=
+ | | |-- organization.url=
+ | | `-- updated=
+ | |-- maven:artifactId=
+ | `-- maven:groupId=
+ `-- metadata/
+
+(To update - run "tree --dirstfirst -F" on the unpacked content-model.zip from the sandbox)
+
+Notes:
+
+1) Projects are just a single code project. They do not have subprojects - if such modeling needs to be done, then we can create a products
+tree that will map what "Archiva 1.0" contains from the other repositories.
+
+2) There is not Maven-native information here, other than that in the maven: namespace. pom & other files are not treated as special - they are
+each stored and it is up to the reader to interpret
+
+3) artifact data is not stored in the content repository (there is no data= property on the file). The information here is enough to locate the
+file in the original storageUrl when it is requested
+
+4) The API will still use separate namespace and project identifiers (the namespace can be null if there isn't one). This is chosen to allow
+splitting the namespace on '.', and also allowing '.' in the project identifier without splitting
+
+5) properties with '.' may be nested in other representations such as Java models or XML, if appropriate
+
+6) we only keep one set of project information for a "version" - this differs from Maven's storage of one POM per snapshot. The Maven 2 module will
+ take the latest. Those that need Maven's behaviour should retrieve the POM directly. Implementations are also free to store as much information
+ as desired within the artifact node in addition to whatever is shared in the project version node. \ No newline at end of file
diff --git a/archiva-modules/metadata/metadata-model/pom.xml b/archiva-modules/metadata/metadata-model/pom.xml
new file mode 100644
index 000000000..ccd593426
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/pom.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>metadata</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>metadata-model</artifactId>
+ <name>Archiva Metadata Model</name>
+</project>
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java
new file mode 100644
index 000000000..51e6a550a
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java
@@ -0,0 +1,78 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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 java.util.Date;
+
+public class ArtifactMetadata
+{
+ private String id;
+
+ private Date updated;
+
+ private long size;
+
+ private String version;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public Date getUpdated()
+ {
+ return updated;
+ }
+
+ public void setUpdated( Date updated )
+ {
+ this.updated = updated;
+ }
+
+ public void setUpdated( long updated )
+ {
+ this.updated = new Date( updated );
+ }
+
+ public long getSize()
+ {
+ return size;
+ }
+
+ public void setSize( long size )
+ {
+ this.size = size;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/CiManagement.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/CiManagement.java
new file mode 100644
index 000000000..bb0bc7c1b
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/CiManagement.java
@@ -0,0 +1,47 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class CiManagement
+{
+ private String system;
+
+ private String url;
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+
+ public String getSystem()
+ {
+ return system;
+ }
+
+ public void setSystem( String system )
+ {
+ this.system = system;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/IssueManagement.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/IssueManagement.java
new file mode 100644
index 000000000..22f7290be
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/IssueManagement.java
@@ -0,0 +1,47 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class IssueManagement
+{
+ private String system;
+
+ private String url;
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+
+ public String getSystem()
+ {
+ return system;
+ }
+
+ public void setSystem( String system )
+ {
+ this.system = system;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/License.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/License.java
new file mode 100644
index 000000000..456d63951
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/License.java
@@ -0,0 +1,47 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class License
+{
+ private String name;
+
+ private String url;
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Organization.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Organization.java
new file mode 100644
index 000000000..f3d841d4c
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Organization.java
@@ -0,0 +1,47 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class Organization
+{
+ private String name;
+
+ private String url;
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
new file mode 100644
index 000000000..8db1f0116
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
@@ -0,0 +1,47 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class ProjectMetadata
+{
+ private String namespace;
+
+ private String id;
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public String getNamespace()
+ {
+ return namespace;
+ }
+
+ public void setNamespace( String namespace )
+ {
+ this.namespace = namespace;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionFacet.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionFacet.java
new file mode 100644
index 000000000..8cb109fcb
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionFacet.java
@@ -0,0 +1,25 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public interface ProjectVersionFacet
+{
+ String getFacetId();
+}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
new file mode 100644
index 000000000..c2add5b4f
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
@@ -0,0 +1,161 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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 java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ProjectVersionMetadata
+{
+ private String id;
+
+ private String url;
+
+ private String name;
+
+ private String description;
+
+ private Organization organization;
+
+ private IssueManagement issueManagement;
+
+ private Scm scm;
+
+ private CiManagement ciManagement;
+
+ private List<License> licenses;
+
+ private Map<String, ProjectVersionFacet> facets;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public void setDescription( String description )
+ {
+ this.description = description;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Organization getOrganization()
+ {
+ return organization;
+ }
+
+ public void setOrganization( Organization organization )
+ {
+ this.organization = organization;
+ }
+
+ public IssueManagement getIssueManagement()
+ {
+ return issueManagement;
+ }
+
+ public void setIssueManagement( IssueManagement issueManagement )
+ {
+ this.issueManagement = issueManagement;
+ }
+
+ public Scm getScm()
+ {
+ return scm;
+ }
+
+ public void setScm( Scm scm )
+ {
+ this.scm = scm;
+ }
+
+ public CiManagement getCiManagement()
+ {
+ return ciManagement;
+ }
+
+ public void setCiManagement( CiManagement ciManagement )
+ {
+ this.ciManagement = ciManagement;
+ }
+
+ public List<License> getLicenses()
+ {
+ return licenses;
+ }
+
+ public void setLicenses( List<License> licenses )
+ {
+ this.licenses = licenses;
+ }
+
+ public void addLicense( License license )
+ {
+ if ( this.licenses == null )
+ {
+ this.licenses = new ArrayList<License>();
+ }
+ this.licenses.add( license );
+ }
+
+ public void addFacet( ProjectVersionFacet mavenProjectFacet )
+ {
+ if ( this.facets == null )
+ {
+ this.facets = new HashMap<String, ProjectVersionFacet>();
+ }
+ this.facets.put( mavenProjectFacet.getFacetId(), mavenProjectFacet );
+ }
+
+ public ProjectVersionFacet getFacet( String facetId )
+ {
+ return this.facets.get( facetId );
+ }
+}
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseCleanupConsumer.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/RepositoryMetadata.java
index ac301b86a..d1448f24f 100644
--- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseCleanupConsumer.java
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/RepositoryMetadata.java
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.database.updater;
+package org.apache.archiva.metadata.model;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -9,7 +9,7 @@ package org.apache.maven.archiva.database.updater;
* "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
+ * 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
@@ -20,12 +20,9 @@ package org.apache.maven.archiva.database.updater;
*/
/**
- * DatabaseCleanupConsumer
- *
- * @version $Id$
+ * Information about the repository as a whole.
*/
-public interface DatabaseCleanupConsumer
- extends ArchivaArtifactConsumer
+public class RepositoryMetadata
{
-
+ // TODO
}
diff --git a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Scm.java b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Scm.java
new file mode 100644
index 000000000..a3d8158fb
--- /dev/null
+++ b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/Scm.java
@@ -0,0 +1,59 @@
+package org.apache.archiva.metadata.model;
+
+/*
+ * 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.
+ */
+
+public class Scm
+{
+ private String connection;
+
+ private String developerConnection;
+
+ private String url;
+
+ public String getUrl()
+ {
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ this.url = url;
+ }
+
+ public String getDeveloperConnection()
+ {
+ return developerConnection;
+ }
+
+ public void setDeveloperConnection( String developerConnection )
+ {
+ this.developerConnection = developerConnection;
+ }
+
+ public String getConnection()
+ {
+ return connection;
+ }
+
+ public void setConnection( String connection )
+ {
+ this.connection = connection;
+ }
+}
diff --git a/archiva-modules/metadata/metadata-repository-api/pom.xml b/archiva-modules/metadata/metadata-repository-api/pom.xml
new file mode 100644
index 000000000..8bfac606b
--- /dev/null
+++ b/archiva-modules/metadata/metadata-repository-api/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>metadata</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>metadata-repository-api</artifactId>
+ <name>Archiva Metadata Repository API</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-model</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
new file mode 100644
index 000000000..0fb3cbabb
--- /dev/null
+++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
@@ -0,0 +1,69 @@
+package org.apache.archiva.metadata.repository;
+
+/*
+ * 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 java.util.Collection;
+
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+
+/**
+ * @plexus.component role="org.apache.archiva.metadata.repository.MetadataResolver"
+ */
+public class DefaultMetadataResolver
+ implements MetadataResolver
+{
+ /**
+ * @plexus.requirement
+ */
+ private MetadataRepository metadataRepository;
+
+ /**
+ * FIXME: this needs to be configurable based on storage type, and availability of proxy module
+ * ... could be a different type since we need methods to modify the storage metadata
+ * @plexus.requirement role-hint="maven2"
+ */
+ private MetadataResolver storageResolver;
+
+ public ProjectMetadata getProject( String repoId, String namespace, String projectId )
+ {
+ // TODO: intercept
+ return metadataRepository.getProject( repoId, namespace, projectId );
+ }
+
+ public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId, String projectVersion )
+ {
+ ProjectVersionMetadata metadata = metadataRepository.getProjectVersion( repoId, namespace, projectId, projectVersion );
+ // TODO: do we want to detect changes as well by comparing timestamps? isProjectVersionNewerThan(updated)
+ // in such cases we might also remove/update stale metadata, including adjusting plugin-based facets
+ if ( metadata == null )
+ {
+ metadata = storageResolver.getProjectVersion( repoId, namespace, projectId, projectVersion );
+ metadataRepository.updateProjectVersion( repoId, namespace, projectId, metadata );
+ }
+ return metadata;
+ }
+
+ public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId, String projectVersion )
+ {
+ // TODO: intercept
+ return metadataRepository.getArtifactVersions( repoId, namespace, projectId, projectVersion );
+ }
+}
diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
new file mode 100644
index 000000000..7b4e23737
--- /dev/null
+++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
@@ -0,0 +1,42 @@
+package org.apache.archiva.metadata.repository;
+
+/*
+ * 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.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+
+public interface MetadataRepository
+ extends MetadataResolver
+{
+ /**
+ * Update metadata for a particular project in the metadata repository, or create it if it does not already exist.
+ *
+ * @param project the project metadata to create or update
+ */
+ void updateProject( String repoId, ProjectMetadata project );
+
+ void updateArtifact( String repoId, String namespace, String projectId, String projectVersion,
+ ArtifactMetadata artifactMeta );
+
+ void updateProjectVersion( String repoId, String namespace, String projectId,
+ ProjectVersionMetadata versionMetadata );
+
+}
diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataResolver.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataResolver.java
new file mode 100644
index 000000000..7050b0552
--- /dev/null
+++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataResolver.java
@@ -0,0 +1,34 @@
+package org.apache.archiva.metadata.repository;
+
+/*
+ * 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 java.util.Collection;
+
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+
+public interface MetadataResolver
+{
+ ProjectMetadata getProject( String repoId, String namespace, String projectId );
+
+ ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId, String projectVersion );
+
+ Collection<String> getArtifactVersions( String repoId, String namespace, String projectId, String projectVersion );
+}
diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryPathTranslator.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryPathTranslator.java
new file mode 100644
index 000000000..f7a50e7d5
--- /dev/null
+++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryPathTranslator.java
@@ -0,0 +1,29 @@
+package org.apache.archiva.metadata.repository.storage;
+
+/*
+ * 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 java.io.File;
+
+public interface RepositoryPathTranslator
+{
+ File toFile( File basedir, String namespace, String projectId, String projectVersion, String filename );
+
+ String toPath( String namespace, String projectId, String projectVersion, String filename );
+}
diff --git a/archiva-modules/metadata/pom.xml b/archiva-modules/metadata/pom.xml
new file mode 100644
index 000000000..3e7159b5a
--- /dev/null
+++ b/archiva-modules/metadata/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-modules</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>metadata</artifactId>
+ <name>Archiva Metadata</name>
+ <packaging>pom</packaging>
+ <modules>
+ <module>metadata-model</module>
+ <module>metadata-repository-api</module>
+ </modules>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/pom.xml b/archiva-modules/plugins/maven2-repository/pom.xml
new file mode 100644
index 000000000..0256af235
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+-->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>plugins</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>maven2-repository</artifactId>
+ <name>Maven 2.x Repository Support</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-builder</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ </dependency>
+ <!-- TODO: aim to remove this dependency -->
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-xml-tools</artifactId>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <!-- TODO: this is to override the top level dependency management - we need to rationalise these -->
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>3.0-alpha-4</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/DummyLifecycleBindingsInjector.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/DummyLifecycleBindingsInjector.java
new file mode 100644
index 000000000..15b0d01f3
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/DummyLifecycleBindingsInjector.java
@@ -0,0 +1,39 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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.model.Model;
+import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblemCollector;
+import org.apache.maven.model.plugin.LifecycleBindingsInjector;
+
+/**
+ * Required as plexus-spring doesn't understand the optional = true argument added to Plexus and used here.
+ *
+ * @plexus.component role="org.apache.maven.model.plugin.LifecycleBindingsInjector"
+ */
+public class DummyLifecycleBindingsInjector
+ implements LifecycleBindingsInjector
+{
+ public void injectLifecycleBindings( Model model, ModelBuildingRequest modelBuildingRequest, ModelProblemCollector modelProblemCollector )
+ {
+ // left intentionally blank
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
new file mode 100644
index 000000000..c8fed1011
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
@@ -0,0 +1,141 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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 java.io.File;
+import java.util.Collection;
+
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataResolver;
+import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
+import org.apache.maven.archiva.common.utils.VersionUtil;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.xml.XMLException;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.building.DefaultModelBuildingRequest;
+import org.apache.maven.model.building.ModelBuilder;
+import org.apache.maven.model.building.ModelBuildingException;
+import org.apache.maven.model.building.ModelBuildingRequest;
+
+/**
+ * @plexus.component role="org.apache.archiva.metadata.repository.MetadataResolver" role-hint="maven2"
+ */
+public class Maven2RepositoryMetadataResolver
+ implements MetadataResolver
+{
+ /**
+ * @plexus.requirement
+ */
+ private ModelBuilder builder;
+
+ /**
+ * @plexus.requirement
+ */
+ private ArchivaConfiguration archivaConfiguration;
+
+ /**
+ * @plexus.requirement role-hint="maven2"
+ */
+ private RepositoryPathTranslator pathTranslator;
+
+ public ProjectMetadata getProject( String repoId, String namespace, String projectId )
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId,
+ String projectVersion )
+ {
+ // TODO: artifactVersion translation
+
+ ManagedRepositoryConfiguration repositoryConfiguration =
+ archivaConfiguration.getConfiguration().findManagedRepositoryById( repoId );
+
+ String artifactVersion = projectVersion;
+
+ File basedir = new File( repositoryConfiguration.getLocation() );
+ if ( VersionUtil.isSnapshot( projectVersion ) )
+ {
+ // TODO: need much error handling here for incorrect metadata
+ try
+ {
+ MavenRepositoryMetadata metadata = MavenRepositoryMetadataReader.read(
+ pathTranslator.toFile( basedir, namespace, projectId, projectVersion, "maven-metadata.xml" ) );
+
+ artifactVersion =
+ artifactVersion.substring( 0, artifactVersion.length() - 8 ); // remove SNAPSHOT from end
+ MavenRepositoryMetadata.Snapshot snapshotVersion = metadata.getSnapshotVersion();
+ artifactVersion =
+ artifactVersion + snapshotVersion.getTimestamp() + "-" + snapshotVersion.getBuildNumber();
+ }
+ catch ( XMLException e )
+ {
+ // TODO: handle it
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
+
+ File file = pathTranslator.toFile( basedir, namespace, projectId, projectVersion,
+ projectId + "-" + artifactVersion + ".pom" );
+
+ ModelBuildingRequest req = new DefaultModelBuildingRequest();
+ req.setProcessPlugins( false );
+ req.setPomFile( file );
+ req.setModelResolver( new RepositoryModelResolver( basedir, pathTranslator ) );
+
+ Model model;
+ try
+ {
+ model = builder.build( req ).getEffectiveModel();
+ }
+ catch ( ModelBuildingException e )
+ {
+ // TODO: handle it
+ throw new RuntimeException( e );
+ }
+
+ MavenProjectFacet facet = new MavenProjectFacet();
+ facet.setGroupId( model.getGroupId() != null ? model.getGroupId() : model.getParent().getGroupId() );
+ facet.setArtifactId( model.getArtifactId() );
+ facet.setPackaging( model.getPackaging() );
+ if ( model.getParent() != null )
+ {
+ MavenProjectParent parent = new MavenProjectParent();
+ parent.setGroupId( model.getParent().getGroupId() );
+ parent.setArtifactId( model.getParent().getArtifactId() );
+ parent.setVersion( model.getParent().getVersion() );
+ facet.setParent( parent );
+ }
+ ProjectVersionMetadata metadata = new ProjectVersionMetadata();
+ metadata.setUrl( model.getUrl() );
+ metadata.addFacet( facet );
+ // TODO: convert project
+
+ return metadata;
+ }
+
+ public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId,
+ String projectVersion )
+ {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryPathTranslator.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryPathTranslator.java
new file mode 100644
index 000000000..3f5bcc83d
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryPathTranslator.java
@@ -0,0 +1,57 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+import java.io.File;
+
+import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
+
+/*
+ * 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.
+ */
+
+/**
+ * @plexus.component role="org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator" role-hint="maven2"
+ */
+public class Maven2RepositoryPathTranslator
+ implements RepositoryPathTranslator
+{
+ private static final char PATH_SEPARATOR = '/';
+
+ private static final char GROUP_SEPARATOR = '.';
+
+ public File toFile( File basedir, String namespace, String projectId, String projectVersion, String filename )
+ {
+ return new File( basedir, toPath( namespace, projectId, projectVersion, filename ) );
+ }
+
+ public String toPath( String namespace, String projectId, String projectVersion, String filename )
+ {
+ StringBuilder path = new StringBuilder();
+
+ path.append( formatAsDirectory( namespace ) ).append( PATH_SEPARATOR );
+ path.append( projectId ).append( PATH_SEPARATOR );
+ path.append( projectVersion ).append( PATH_SEPARATOR );
+ path.append( filename );
+
+ return path.toString();
+ }
+
+ private String formatAsDirectory( String directory )
+ {
+ return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectFacet.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectFacet.java
new file mode 100644
index 000000000..fbcc31b75
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectFacet.java
@@ -0,0 +1,81 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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.archiva.metadata.model.ProjectVersionFacet;
+
+public class MavenProjectFacet
+ implements ProjectVersionFacet
+{
+ private String groupId;
+
+ private String artifactId;
+
+ private MavenProjectParent parent;
+
+ private String packaging;
+
+ public static final String FACET_ID = "org.apache.archiva.metadata.repository.storage.maven2";
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public void setGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public MavenProjectParent getParent()
+ {
+ return parent;
+ }
+
+ public void setParent( MavenProjectParent parent )
+ {
+ this.parent = parent;
+ }
+
+ public String getPackaging()
+ {
+ return packaging;
+ }
+
+ public void setPackaging( String packaging )
+ {
+ this.packaging = packaging;
+ }
+
+ public String getFacetId()
+ {
+ return FACET_ID;
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectParent.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectParent.java
new file mode 100644
index 000000000..d9757d716
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenProjectParent.java
@@ -0,0 +1,59 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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.
+ */
+
+public class MavenProjectParent
+{
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public void setGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadata.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadata.java
new file mode 100644
index 000000000..b5ef400a4
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadata.java
@@ -0,0 +1,200 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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 java.util.ArrayList;
+import java.util.List;
+
+public class MavenRepositoryMetadata
+{
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ private String lastUpdated;
+
+ private String latestVersion;
+
+ private String releasedVersion;
+
+ private List<String> availableVersions;
+
+ private Snapshot snapshotVersion;
+
+ private List<Plugin> plugins = new ArrayList<Plugin>();
+
+ public List<Plugin> getPlugins()
+ {
+ return plugins;
+ }
+
+ public void setGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public void setLastUpdated( String lastUpdated )
+ {
+ this.lastUpdated = lastUpdated;
+ }
+
+ public void setLatestVersion( String latestVersion )
+ {
+ this.latestVersion = latestVersion;
+ }
+
+ public void setReleasedVersion( String releasedVersion )
+ {
+ this.releasedVersion = releasedVersion;
+ }
+
+ public void setAvailableVersions( List<String> availableVersions )
+ {
+ this.availableVersions = availableVersions;
+ }
+
+ public void setSnapshotVersion( Snapshot snapshotVersion )
+ {
+ this.snapshotVersion = snapshotVersion;
+ }
+
+ public void addPlugin( Plugin plugin )
+ {
+ this.plugins.add( plugin );
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public String getLastUpdated()
+ {
+ return lastUpdated;
+ }
+
+ public String getLatestVersion()
+ {
+ return latestVersion;
+ }
+
+ public String getReleasedVersion()
+ {
+ return releasedVersion;
+ }
+
+ public List<String> getAvailableVersions()
+ {
+ return availableVersions;
+ }
+
+ public Snapshot getSnapshotVersion()
+ {
+ return snapshotVersion;
+ }
+
+ public static class Snapshot
+ {
+ private String timestamp;
+
+ private int buildNumber;
+
+ public void setTimestamp( String timestamp )
+ {
+ this.timestamp = timestamp;
+ }
+
+ public void setBuildNumber( int buildNumber )
+ {
+ this.buildNumber = buildNumber;
+ }
+
+ public int getBuildNumber()
+ {
+ return buildNumber;
+ }
+
+ public String getTimestamp()
+ {
+ return timestamp;
+ }
+ }
+
+ public static class Plugin
+ {
+ private String prefix;
+
+ private String artifactId;
+
+ private String name;
+
+ public void setPrefix( String prefix )
+ {
+ this.prefix = prefix;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public String getPrefix()
+ {
+ return prefix;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReader.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReader.java
new file mode 100644
index 000000000..a56f0befd
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReader.java
@@ -0,0 +1,90 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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 java.io.File;
+
+import org.apache.commons.lang.math.NumberUtils;
+import org.apache.maven.archiva.xml.XMLException;
+import org.apache.maven.archiva.xml.XMLReader;
+import org.dom4j.Element;
+
+/**
+ * RepositoryMetadataReader - read maven-metadata.xml files.
+ *
+ * TODO: we should improve on this, ideally using the Maven standard libraries (which are unfortunately baked into
+ * maven-core now)
+ */
+public final class MavenRepositoryMetadataReader
+{
+ private MavenRepositoryMetadataReader()
+ {
+ }
+
+ /**
+ * Read and return the {@link MavenRepositoryMetadata} object from the provided xml file.
+ *
+ * @param metadataFile the maven-metadata.xml file to read.
+ * @return the archiva repository metadata object that represents the provided file contents.
+ * @throws org.apache.maven.archiva.xml.XMLException
+ */
+ public static MavenRepositoryMetadata read( File metadataFile )
+ throws XMLException
+ {
+ XMLReader xml = new XMLReader( "metadata", metadataFile );
+ // invoke this to remove namespaces, see MRM-1136
+ xml.removeNamespaces();
+
+ MavenRepositoryMetadata metadata = new MavenRepositoryMetadata();
+
+ metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) );
+ metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) );
+ metadata.setVersion( xml.getElementText( "//metadata/version" ) );
+
+ metadata.setLastUpdated( xml.getElementText( "//metadata/versioning/lastUpdated" ) );
+ metadata.setLatestVersion( xml.getElementText( "//metadata/versioning/latest" ) );
+ metadata.setReleasedVersion( xml.getElementText( "//metadata/versioning/release" ) );
+ metadata.setAvailableVersions( xml.getElementListText( "//metadata/versioning/versions/version" ) );
+
+ Element snapshotElem = xml.getElement( "//metadata/versioning/snapshot" );
+ if ( snapshotElem != null )
+ {
+ MavenRepositoryMetadata.Snapshot snapshot = new MavenRepositoryMetadata.Snapshot();
+ snapshot.setTimestamp( snapshotElem.elementTextTrim( "timestamp" ) );
+ String tmp = snapshotElem.elementTextTrim( "buildNumber" );
+ if ( NumberUtils.isNumber( tmp ) )
+ {
+ snapshot.setBuildNumber( NumberUtils.toInt( tmp ) );
+ }
+ metadata.setSnapshotVersion( snapshot );
+ }
+
+ for ( Element plugin : xml.getElementList( "//metadata/plugins/plugin" ) )
+ {
+ MavenRepositoryMetadata.Plugin p = new MavenRepositoryMetadata.Plugin();
+ p.setPrefix( plugin.elementTextTrim( "prefix" ) );
+ p.setArtifactId( plugin.elementTextTrim( "artifactId" ) );
+ p.setName( plugin.elementTextTrim( "name" ) );
+ metadata.addPlugin( p );
+ }
+
+ return metadata;
+ }
+} \ No newline at end of file
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/RepositoryModelResolver.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/RepositoryModelResolver.java
new file mode 100644
index 000000000..b76d8740d
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/RepositoryModelResolver.java
@@ -0,0 +1,66 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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 java.io.File;
+
+import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.FileModelSource;
+import org.apache.maven.model.building.ModelSource;
+import org.apache.maven.model.resolution.InvalidRepositoryException;
+import org.apache.maven.model.resolution.ModelResolver;
+import org.apache.maven.model.resolution.UnresolvableModelException;
+
+public class RepositoryModelResolver
+ implements ModelResolver
+{
+ private File basedir;
+
+ private RepositoryPathTranslator pathTranslator;
+
+ public RepositoryModelResolver( File basedir, RepositoryPathTranslator pathTranslator )
+ {
+ this.basedir = basedir;
+
+ this.pathTranslator = pathTranslator;
+ }
+
+ public ModelSource resolveModel( String groupId, String artifactId, String version )
+ throws UnresolvableModelException
+ {
+ String filename = artifactId + "-" + version + ".pom";
+ // TODO: we need to convert 1.0-20091120.112233-1 type paths to baseVersion for the below call - add a test
+ return new FileModelSource( pathTranslator.toFile( basedir, groupId, artifactId, version, filename ) );
+ }
+
+ public void addRepository( Repository repository )
+ throws InvalidRepositoryException
+ {
+ // we just ignore repositories outside of the current one for now
+ // TODO: it'd be nice to look them up from Archiva's set, but we want to do that by URL / mapping, not just the
+ // ID since they will rarely match
+ }
+
+ public ModelResolver newCopy()
+ {
+ return new RepositoryModelResolver( basedir, pathTranslator );
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
new file mode 100644
index 000000000..ca6dfed53
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
@@ -0,0 +1,64 @@
+package org.apache.archiva.configuration;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ConfigurationListener;
+import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
+import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.registry.RegistryListener;
+
+/*
+ * 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.
+ */
+
+public class TestConfiguration
+ implements ArchivaConfiguration
+{
+ private Configuration configuration;
+
+ public Configuration getConfiguration()
+ {
+ return configuration;
+ }
+
+ public void save( Configuration configuration )
+ throws RegistryException, IndeterminateConfigurationException
+ {
+ this.configuration = configuration;
+ }
+
+ public boolean isDefaulted()
+ {
+ return false;
+ }
+
+ public void addListener( ConfigurationListener listener )
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeListener( ConfigurationListener listener )
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addChangeListener( RegistryListener listener )
+ {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
new file mode 100644
index 000000000..b82c95c33
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
@@ -0,0 +1,71 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataResolver;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
+public class Maven2RepositoryMetadataResolverTest
+ extends PlexusInSpringTestCase
+{
+ private Maven2RepositoryMetadataResolver resolver;
+
+ private static final String TEST_REPO_ID = "test";
+
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ArchivaConfiguration configuration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class );
+ Configuration c = new Configuration();
+ ManagedRepositoryConfiguration testRepo = new ManagedRepositoryConfiguration();
+ testRepo.setId( TEST_REPO_ID );
+ testRepo.setLocation( getTestPath( "src/test/repositories/test" ) );
+ c.addManagedRepository( testRepo );
+ configuration.save( c );
+
+ resolver = (Maven2RepositoryMetadataResolver) lookup( MetadataResolver.class, "maven2" );
+ }
+
+ public void testGetProjectVersionMetadata()
+ {
+ ProjectVersionMetadata metadata =
+ resolver.getProjectVersion( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" );
+ MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
+ assertEquals( "jar", facet.getPackaging() );
+ assertEquals( "http://archiva.apache.org/ref/1.2.1/archiva-base/archiva-common", metadata.getUrl() );
+ // TODO: more testing
+ }
+
+ public void testGetProjectVersionMetadataForTimestampedSnapshot()
+ {
+ ProjectVersionMetadata metadata =
+ resolver.getProjectVersion( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" );
+ MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
+ assertEquals( "pom", facet.getPackaging() );
+ assertEquals( "http://www.apache.org/", metadata.getUrl() );
+ // TODO: more testing
+ }
+}
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReaderTest.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReaderTest.java
new file mode 100644
index 000000000..b88036f37
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReaderTest.java
@@ -0,0 +1,73 @@
+package org.apache.archiva.metadata.repository.storage.maven2;
+
+/*
+ * 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 java.io.File;
+import java.util.Arrays;
+
+import org.apache.maven.archiva.xml.XMLException;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
+/**
+ * RepositoryMetadataReaderTest
+ *
+ * @version $Id$
+ */
+public class MavenRepositoryMetadataReaderTest
+ extends PlexusInSpringTestCase
+{
+ public void testProjectMetadata()
+ throws XMLException
+ {
+ File defaultRepoDir = new File( getBasedir(), "src/test/repositories/test" );
+ File metadataFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/maven-metadata.xml" );
+
+ MavenRepositoryMetadata metadata = MavenRepositoryMetadataReader.read( metadataFile );
+
+ assertNotNull( metadata );
+ assertEquals( "org.apache.maven.shared", metadata.getGroupId() );
+ assertEquals( "maven-downloader", metadata.getArtifactId() );
+ assertEquals( "1.1", metadata.getReleasedVersion() );
+ assertNull( metadata.getLatestVersion() );
+ assertEquals( Arrays.asList( "1.0", "1.1" ), metadata.getAvailableVersions() );
+ assertNull( metadata.getSnapshotVersion() );
+ assertEquals( "20061212214311", metadata.getLastUpdated() );
+ }
+
+ public void testProjectVersionMetadata()
+ throws XMLException
+ {
+ File defaultRepoDir = new File( getBasedir(), "src/test/repositories/test" );
+ File metadataFile = new File( defaultRepoDir, "org/apache/apache/5-SNAPSHOT/maven-metadata.xml" );
+
+ MavenRepositoryMetadata metadata = MavenRepositoryMetadataReader.read( metadataFile );
+
+ assertNotNull( metadata );
+ assertEquals( "org.apache", metadata.getGroupId() );
+ assertEquals( "apache", metadata.getArtifactId() );
+ assertNull( metadata.getReleasedVersion() );
+ assertNull( metadata.getLatestVersion() );
+ assertTrue( metadata.getAvailableVersions().isEmpty() );
+ assertNotNull( metadata.getSnapshotVersion() );
+ assertEquals( "20080801.151215", metadata.getSnapshotVersion().getTimestamp() );
+ assertEquals( 1, metadata.getSnapshotVersion().getBuildNumber() );
+ assertEquals( "20080801151215", metadata.getLastUpdated() );
+ }
+} \ No newline at end of file
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/4/apache-4.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/4/apache-4.pom
new file mode 100644
index 000000000..8d202b8b1
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/4/apache-4.pom
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Shared parent. Doesn't define a lot of things about Apache like general mailing lists, but does
+ define the settings common to all projects at Apache -->
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>4</version>
+ <packaging>pom</packaging>
+ <name>The Apache Software Foundation</name>
+ <description>
+ The Apache Software Foundation provides support for the Apache community of open-source software projects.
+ The Apache projects are characterized by a collaborative, consensus based development process, an open and
+ pragmatic software license, and a desire to create high quality software that leads the way in its field.
+ We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
+ and users.
+ </description>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <organization>
+ <name>The Apache Software Foundation</name>
+ <url>http://www.apache.org/</url>
+ </organization>
+ <url>http://www.apache.org/</url>
+ <repositories>
+ <repository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <distributionManagement>
+ <!-- Site omitted - each project must provide their own -->
+ <repository>
+ <id>apache.releases</id>
+ <name>Apache Release Distribution Repository</name>
+ <url>scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache.snapshots</id>
+ <name>Apache Development Snapshot Repository</name>
+ <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Apache Announce List</name>
+ <subscribe>announce-subscribe@apache.org</subscribe>
+ <unsubscribe>announce-unsubscribe@apache.org</unsubscribe>
+ <post>announce@apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/www-announce/</archive>
+ </mailingList>
+ </mailingLists>
+ <properties>
+ <organization.logo>http://www.apache.org/images/asf_logo_wide.gif</organization.logo>
+ </properties>
+ <!--
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <configuration>
+ <artifacts>
+ <artifact>org.apache:apache-distribution-resources:1.0-SNAPSHOT</artifact>
+ </artifacts>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ -->
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/tags/apache-4</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/tags/apache-4</developerConnection>
+ <url>http://svn.apache.org/viewvc/maven/pom/tags/apache-4</url>
+ </scm>
+</project>
+
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/apache-5-20080801.151215-1.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/apache-5-20080801.151215-1.pom
new file mode 100644
index 000000000..df85cfa77
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/apache-5-20080801.151215-1.pom
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Shared parent. Doesn't define a lot of things about Apache like general mailing lists, but does
+ define the settings common to all projects at Apache -->
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>5-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>The Apache Software Foundation</name>
+ <description>
+ The Apache Software Foundation provides support for the Apache community of open-source software projects.
+ The Apache projects are characterized by a collaborative, consensus based development process, an open and
+ pragmatic software license, and a desire to create high quality software that leads the way in its field.
+ We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
+ and users.
+ </description>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <organization>
+ <name>The Apache Software Foundation</name>
+ <url>http://www.apache.org/</url>
+ </organization>
+ <url>http://www.apache.org/</url>
+ <repositories>
+ <repository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <distributionManagement>
+ <!-- Site omitted - each project must provide their own -->
+ <repository>
+ <id>apache.releases</id>
+ <name>Apache Release Distribution Repository</name>
+ <url>scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+ </repository>
+ <snapshotRepository>
+ <id>apache.snapshots</id>
+ <name>Apache Development Snapshot Repository</name>
+ <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Apache Announce List</name>
+ <subscribe>announce-subscribe@apache.org</subscribe>
+ <unsubscribe>announce-unsubscribe@apache.org</unsubscribe>
+ <post>announce@apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/www-announce/</archive>
+ </mailingList>
+ </mailingLists>
+ <properties>
+ <organization.logo>http://www.apache.org/images/asf_logo_wide.gif</organization.logo>
+ </properties>
+ <!--
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <configuration>
+ <artifacts>
+ <artifact>org.apache:apache-distribution-resources:1.0-SNAPSHOT</artifact>
+ </artifacts>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ -->
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/trunk/asf</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/trunk/asf</developerConnection>
+ <url>http://svn.apache.org/viewvc/maven/pom/trunk/asf</url>
+ </scm>
+</project>
+
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/maven-metadata.xml b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/maven-metadata.xml
new file mode 100644
index 000000000..46dc46ee0
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/apache/5-SNAPSHOT/maven-metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>5-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <buildNumber>1</buildNumber>
+ <timestamp>20080801.151215</timestamp>
+ </snapshot>
+ <lastUpdated>20080801151215</lastUpdated>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-base/1.2.1/archiva-base-1.2.1.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-base/1.2.1/archiva-base-1.2.1.pom
new file mode 100644
index 000000000..326f6ff95
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-base/1.2.1/archiva-base-1.2.1.pom
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-modules</artifactId>
+ <version>1.2.1</version>
+ </parent>
+
+ <artifactId>archiva-base</artifactId>
+ <name>Archiva Base</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>archiva-checksum</module>
+ <module>archiva-common</module>
+ <module>archiva-policies</module>
+ <module>archiva-configuration</module>
+ <module>archiva-consumers</module>
+ <module>archiva-indexer</module>
+ <module>archiva-model</module>
+ <module>archiva-dependency-graph</module>
+ <module>archiva-repository-layer</module>
+ <module>archiva-xml-tools</module>
+ <module>archiva-proxy</module>
+ <module>archiva-transaction</module>
+ <module>archiva-artifact-converter</module>
+ <module>archiva-converter</module>
+ </modules>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-common/1.2.1/archiva-common-1.2.1.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-common/1.2.1/archiva-common-1.2.1.pom
new file mode 100644
index 000000000..bddde3bb7
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-common/1.2.1/archiva-common-1.2.1.pom
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.2.1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-common</artifactId>
+ <name>Archiva Base :: Common</name>
+ <dependencies>
+ <!-- TO OTHER DEVELOPERS:
+ This module should depend on NO OTHER ARCHIVA MODULES.
+ If you feel tempted to add one, discuss it first in the
+ archiva-dev@maven.apache.org mailing-list.
+ joakime@apache.org
+ -->
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-modules/1.2.1/archiva-modules-1.2.1.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-modules/1.2.1/archiva-modules-1.2.1.pom
new file mode 100644
index 000000000..48dafcd3f
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-modules/1.2.1/archiva-modules-1.2.1.pom
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>archiva</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.2.1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-modules</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva :: Modules</name>
+ <url>http://archiva.apache.org/ref/${project.version}</url>
+ <modules>
+ <module>archiva-base</module>
+ <module>archiva-database</module>
+ <module>archiva-reporting</module>
+ <module>archiva-scheduled</module>
+ <module>archiva-web</module>
+ </modules>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ <configLocation>config/maven_checks.xml</configLocation>
+ <!-- TODO: enable when archiva-build-resources is active (released?)
+ <configLocation>checkstyle.xml</configLocation>
+ <headerLocation>header.txt</headerLocation>
+ -->
+ </configuration>
+ </plugin>
+<!-- TODO: OOME
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ </plugin>
+-->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>changelog-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.4.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <source>1.5</source>
+ <aggregate>true</aggregate>
+ <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
+ <docletArtifact>
+ <groupId>gr.spinellis</groupId>
+ <artifactId>UmlGraph</artifactId>
+ <version>4.6</version>
+ </docletArtifact>
+ <additionalparam>
+ -inferrel -inferdep -quiet -hide java.*
+ -collpackages java.util.* -qualify
+ -postfixpackage -nodefontsize 9
+ -nodefontpackagesize 7
+ </additionalparam>
+ <links>
+ <link>http://java.sun.com/j2se/1.4.2/docs/api</link>
+ <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+ <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+ <link>http://commons.apache.org/collections/apidocs-COLLECTIONS_3_0/</link>
+ <link>http://commons.apache.org/dbcp/apidocs/</link>
+ <link>http://commons.apache.org/fileupload/apidocs/</link>
+ <link>http://commons.apache.org/httpclient/apidocs/</link>
+ <link>http://commons.apache.org/logging/apidocs/</link>
+ <link>http://commons.apache.org/pool/apidocs/</link>
+ <link>http://junit.sourceforge.net/javadoc/</link>
+ <link>http://logging.apache.org/log4j/1.2/apidocs/</link>
+ <link>http://jakarta.apache.org/regexp/apidocs/</link>
+ <link>http://velocity.apache.org/engine/releases/velocity-1.5/apidocs/</link>
+ </links>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <!-- TODO: choose appropriate rulesets -->
+ <configuration>
+ <targetJdk>1.5</targetJdk>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>clirr-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>ci</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <!-- TODO: after rules are set
+ <goal>check</goal>
+ -->
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style)
+ <goal>check</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <check>
+ <!-- TODO: raise to 85/100 -->
+ <totalLineRate>77</totalLineRate>
+ <totalBranchRate>95</totalBranchRate>
+ </check>
+ <instrumentation>
+ <excludes>
+ <exclude>**/*$*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>check</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>${siteBaseDeployment}/ref/${project.version}</url>
+ </site>
+ </distributionManagement>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-parent/3/archiva-parent-3.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-parent/3/archiva-parent-3.pom
new file mode 100644
index 000000000..4624a80c0
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva-parent/3/archiva-parent-3.pom
@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>4</version>
+ </parent>
+
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva Common Parent Project</name>
+ <version>3</version>
+ <inceptionYear>2006</inceptionYear>
+ <description>
+ Archiva is an application for managing one or more remote
+ repositories, including administration, artifact handling,
+ browsing and searching.
+ </description>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MRM</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Archiva User List</name>
+ <subscribe>users-subscribe@archiva.apache.org</subscribe>
+ <unsubscribe>users-unsubscribe@archiva.apache.org</unsubscribe>
+ <post>users@archiva.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/archiva-users/</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/users@archiva.apache.org</otherArchive>
+ <otherArchive>http://www.nabble.com/archiva-users-f16426.html</otherArchive>
+ <otherArchive>http://markmail.org/list/org.apache.archiva.users</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Archiva Developer List</name>
+ <subscribe>dev-subscribe@archiva.apache.org</subscribe>
+ <unsubscribe>dev-unsubscribe@archiva.apache.org</unsubscribe>
+ <post>dev@archiva.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/archiva-dev</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/dev@archiva.apache.org</otherArchive>
+ <otherArchive>http://www.nabble.com/archiva-dev-f16427.html</otherArchive>
+ <otherArchive>http://markmail.org/list/org.apache.archiva.dev</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Archiva Commits List</name>
+ <subscribe>commits-subscribe@archiva.apache.org</subscribe>
+ <unsubscribe>commits-unsubscribe@archiva.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/archiva-commits</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/commits@archiva.apache.org</otherArchive>
+ <otherArchive>http://markmail.org/list/org.apache.archiva.commits</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Archiva Issues List</name>
+ <subscribe>issues-subscribe@archiva.apache.org</subscribe>
+ <unsubscribe>issues-unsubscribe@archiva.apache.org</unsubscribe>
+ <archive>http://mail-archives.apache.org/mod_mbox/archiva-issues</archive>
+ <otherArchives>
+ <otherArchive>http://www.mail-archive.com/issues@archiva.apache.org</otherArchive>
+ <otherArchive>http://www.nabble.com/Archiva---Issues-f29617.html</otherArchive>
+ </otherArchives>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/archiva/tags/archiva-parent-3</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/archiva/tags/archiva-parent-3</developerConnection>
+ <url>http://svn.apache.org/viewcvs.cgi/archiva/tags/archiva-parent-3</url>
+ </scm>
+ <properties>
+ <siteBaseDeployment>scp://people.apache.org/www/archiva.apache.org</siteBaseDeployment>
+ </properties>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ </ciManagement>
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <configuration>
+ <passphrase>${gpg.passphrase}</passphrase>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
+ <updateReleaseInfo>true</updateReleaseInfo>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <build>
+ <plugins>
+ <!-- We want to package up license resources in the JARs produced -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ <configuration>
+ <resourceBundles>
+ <resourceBundle>org.apache:apache-jar-resource-bundle:1.3</resourceBundle>
+ </resourceBundles>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <!-- set versions of common plugins for reproducibility, ordered alphabetically -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.0-alpha-4</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.3</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.0-beta-7</version>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/archiva/tags/</tagBase>
+ <useReleaseProfile>false</useReleaseProfile>
+ <arguments>-Prelease</arguments>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>2.0-beta-5</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>2.0.3</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Developers listed by PMC Chair, PMC, Committers, Contributers, all alphabetical-->
+ <developers>
+ <developer>
+ <id>oching</id>
+ <name>Maria Odea B. Ching</name>
+ <email>oching@apache.org</email>
+ <roles>
+ <role>PMC Chair</role>
+ </roles>
+ <timezone>+8</timezone>
+ </developer>
+ <developer>
+ <id>aheritier</id>
+ <name>Arnaud Heritier</name>
+ <email>aheritier@apache.org</email>
+ <organization>OCTO Technology</organization>
+ <organizationUrl>http://www.octo.com</organizationUrl>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>bellingard</id>
+ <name>Fabrice Bellingard</name>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ </developer>
+ <developer>
+ <id>brett</id>
+ <name>Brett Porter</name>
+ <email>brett@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+10</timezone>
+ </developer>
+ <developer>
+ <id>carlos</id>
+ <name>Carlos Sanchez</name>
+ <email>carlos@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>epunzalan</id>
+ <name>Edwin Punzalan</name>
+ <email>epunzalan@apache.org</email>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-8</timezone>
+ </developer>
+ <developer>
+ <id>evenisse</id>
+ <name>Emmanuel Venisse</name>
+ <email>evenisse@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>joakime</id>
+ <name>Joakim Erdfelt</name>
+ <email>joakime@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
+ <id>jtolentino</id>
+ <name>Ernesto Tolentino Jr.</name>
+ <email>jtolentino@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+8</timezone>
+ </developer>
+ <developer>
+ <id>jmcconnell</id>
+ <name>Jesse McConnell</name>
+ <email>jmcconnell@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <id>nicolas</id>
+ <name>Nicolas De Loof</name>
+ <email>nicolas@apache.org</email>
+ <organization>Capgemini</organization>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>wsmoak</id>
+ <name>Wendy Smoak</name>
+ <email>wsmoak@apache.org</email>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ <timezone>-7</timezone>
+ </developer>
+ <!--Committers-->
+ <developer>
+ <id>dennisl</id>
+ <name>Dennis Lundberg</name>
+ <email>dennisl@apache.org</email>
+ <organization>ASF</organization>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <id>jdumay</id>
+ <name>James William Dumay</name>
+ <email>james@atlassian.com</email>
+ <organization>Atlassian</organization>
+ <roles>
+ <roles>Committer</roles>
+ </roles>
+ <timezone>+11</timezone>
+ </developer>
+ <!-- Emeritus Committers -->
+ <developer>
+ <id>jvanzyl</id>
+ <name>Jason van Zyl</name>
+ <roles>
+ <role>Emeritus</role>
+ </roles>
+ </developer>
+ <developer>
+ <id>bayard</id>
+ <name>Henri Yandell</name>
+ <roles>
+ <role>Emeritus</role>
+ </roles>
+ </developer>
+ <developer>
+ <id>kenney</id>
+ <name>Kenney Westerhof</name>
+ <roles>
+ <role>Emeritus</role>
+ </roles>
+ </developer>
+ </developers>
+
+ <contributors>
+ <contributor>
+ <name>Steffen Grunwald</name>
+ </contributor>
+ <contributor>
+ <name>Stefan Prange</name>
+ </contributor>
+ <contributor>
+ <name>John Michael Luy</name>
+ </contributor>
+ <contributor>
+ <name>Martin Höller</name>
+ </contributor>
+ <contributor>
+ <name>Stephen Gargan</name>
+ </contributor>
+ <contributor>
+ <name>Dario Oliveros</name>
+ </contributor>
+ <contributor>
+ <name>james ahlborn</name>
+ </contributor>
+ <contributor>
+ <name>Jim Jackson</name>
+ </contributor>
+ <contributor>
+ <name>Daniel Harvey</name>
+ </contributor>
+ <contributor>
+ <name>Aleksandr Tarutin</name>
+ </contributor>
+ <contributor>
+ <name>Teodoro Cue Jr.</name>
+ </contributor>
+ <contributor>
+ <name>Jan Ancajas</name>
+ </contributor>
+ <contributor>
+ <name>Jens Mühlenhoff</name>
+ </contributor>
+ <contributor>
+ <name>Dawn Angelito</name>
+ </contributor>
+ <contributor>
+ <name>Nap Ramirez</name>
+ </contributor>
+ <contributor>
+ <name>Henry Isidro</name>
+ </contributor>
+ <contributor>
+ <name>Antoine Veret</name>
+ </contributor>
+ <contributor>
+ <name>Christian Gruber</name>
+ </contributor>
+ <contributor>
+ <name>Allan Ramirez</name>
+ </contributor>
+ <contributor>
+ <name>Pete Marvin King</name>
+ </contributor>
+ <contributor>
+ <name>Joel Sudiacal</name>
+ </contributor>
+ <contributor>
+ <name>Milos Kleint</name>
+ </contributor>
+ <contributor>
+ <name>Nick Gonzalez</name>
+ </contributor>
+ </contributors>
+
+</project>
+
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva/1.2.1/archiva-1.2.1.pom b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva/1.2.1/archiva-1.2.1.pom
new file mode 100644
index 000000000..cccf51781
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/archiva/archiva/1.2.1/archiva-1.2.1.pom
@@ -0,0 +1,1199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <prerequisites>
+ <maven>2.0.6</maven>
+ </prerequisites>
+
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-parent</artifactId>
+ <version>3</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+ <name>Archiva</name>
+ <artifactId>archiva</artifactId>
+ <packaging>pom</packaging>
+ <version>1.2.1</version>
+ <url>http://archiva.apache.org</url>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/archiva/tags/archiva-1.2.1</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/archiva/tags/archiva-1.2.1</developerConnection>
+ <url>http://svn.apache.org/viewvc/archiva/tags/archiva-1.2.1</url>
+ </scm>
+
+ <build>
+ <plugins>
+ <!-- We want to package up license resources in the JARs produced -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ <configuration>
+ <resourceBundles>
+ <resourceBundle>org.apache:apache-jar-resource-bundle:1.3</resourceBundle>
+ </resourceBundles>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>1.0-alpha-4</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>org.codehaus.plexus:plexus-container-default</exclude>
+ <exclude>org.codehaus.plexus:plexus-log4j-logging</exclude>
+ <exclude>commons-logging:commons-logging</exclude>
+ <exclude>velocity:velocity-dep</exclude>
+ <exclude>classworlds:classworlds</exclude>
+ <exclude>javax.transaction:jta</exclude>
+ <exclude>javax.sql:jdbc-stdext</exclude>
+ <exclude>ant:ant-optional</exclude>
+ <exclude>xom:xom</exclude>
+ <exclude>org.codehaus.plexus:plexus-xwork-integration</exclude>
+ </excludes>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <version>1.0-beta-3.0.5</version>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>generate-metadata</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0</version>
+ <configuration>
+ <useJava5>true</useJava5>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-plugin-plexus-registry</artifactId>
+ <version>1.0-alpha-21</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-plugin-jpox</artifactId>
+ <version>1.0-alpha-21</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-3</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.3</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.0-alpha-4</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.0-beta-7</version>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/archiva/tags</tagBase>
+ <useReleaseProfile>false</useReleaseProfile>
+ <goals>deploy</goals>
+ <preparationGoals>clean install</preparationGoals>
+ <arguments>-Prelease</arguments>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.2</version>
+ <configuration>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-idea-plugin</artifactId>
+ <configuration>
+ <jdkLevel>1.5</jdkLevel>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <modules>
+ <module>archiva-cli</module>
+ <module>archiva-docs</module>
+ <module>archiva-jetty</module>
+ <module>archiva-modules</module>
+ </modules>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>1.2_Java1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>1.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>httpunit</groupId>
+ <artifactId>httpunit</artifactId>
+ <version>1.6.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webdav</artifactId>
+ <version>1.5.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.nexus</groupId>
+ <artifactId>nexus-indexer</artifactId>
+ <version>2.0.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>classworlds</groupId>
+ <artifactId>classworlds</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>velocity</groupId>
+ <artifactId>velocity-dep</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-registry</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-settings</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-artifact-converter</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-artifact-reports</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-checksum</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-common</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-dependency-graph</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ <version>1.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-core-consumers</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-database</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-database-consumers</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-lucene-consumers</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-model</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-policies</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-report-manager</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduled</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-signature-consumers</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-transaction</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-docs</artifactId>
+ <version>1.2.1</version>
+ <type>zip</type>
+ <classifier>docs</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <version>1.2.1</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-xml-tools</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-webdav</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-rss</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-xmlrpc-api</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-xmlrpc-services</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-xmlrpc-security</artifactId>
+ <version>1.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-spring</artifactId>
+ <version>1.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax</artifactId>
+ <version>1.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.1.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derbytools</artifactId>
+ <version>10.1.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.7</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.jdo</groupId>
+ <artifactId>jdo2-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>jpox</groupId>
+ <artifactId>jpox</artifactId>
+ <version>1.1.9</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-queries</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlrpc</groupId>
+ <artifactId>xmlrpc-server</artifactId>
+ <version>3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>${maven.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ <version>1.0-alpha-22</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-expression-evaluator</artifactId>
+ <version>1.0-rc1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-i18n</artifactId>
+ <version>1.0-beta-6</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-jdo2</artifactId>
+ <version>1.0-alpha-8</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-quartz</artifactId>
+ <version>1.0-alpha-3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-slf4j-logging</artifactId>
+ <version>1.1-alpha-1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-taskqueue</artifactId>
+ <version>1.0-alpha-8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.4.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.cache</groupId>
+ <artifactId>plexus-cache-api</artifactId>
+ <version>1.0-alpha-2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.cache</groupId>
+ <artifactId>plexus-cache-ehcache</artifactId>
+ <version>1.0-alpha-2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- redback -->
+
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-rbac-memory</artifactId>
+ <version>${redback.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-users-memory</artifactId>
+ <version>${redback.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-keys-memory</artifactId>
+ <version>${redback.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-rbac-model</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-authorization-rbac</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-rbac-role-manager</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-system</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-common-integrations</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-struts2-content</artifactId>
+ <version>${redback.version}</version>
+ <type>war</type>
+ <exclusions>
+ <exclusion>
+ <groupId>classworlds</groupId>
+ <artifactId>classworlds</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>redback-struts2-integration</artifactId>
+ <version>${redback.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>classworlds</groupId>
+ <artifactId>classworlds</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>velocity</groupId>
+ <artifactId>velocity-dep</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- redback -->
+
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-api</artifactId>
+ <version>1.0-alpha-2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-commons</artifactId>
+ <version>1.0-alpha-2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant-optional</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>sitemesh</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl104-over-slf4j</artifactId>
+ <version>1.5.0</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.5.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.0</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>taglibs</groupId>
+ <artifactId>standard</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>${wagon.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>nekohtml</groupId>
+ <artifactId>xercesMinimal</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-core</artifactId>
+ <version>2.0.11.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-spring-plugin</artifactId>
+ <version>2.0.11.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+
+ <!-- xmlrpc -->
+ <dependency>
+ <groupId>com.atlassian.xmlrpc</groupId>
+ <artifactId>atlassian-xmlrpc-binder-annotations</artifactId>
+ <version>${binder.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.atlassian.xmlrpc</groupId>
+ <artifactId>atlassian-xmlrpc-binder-server-spring</artifactId>
+ <version>${binder.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.atlassian.xmlrpc</groupId>
+ <artifactId>atlassian-xmlrpc-binder</artifactId>
+ <version>${binder.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.atlassian.xmlrpc</groupId>
+ <artifactId>atlassian-xmlrpc-binder-testing</artifactId>
+ <version>${binder.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Transitive versions to manage -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- use spring test in xmlrpc?
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>2.5.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ <version>2.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ <version>1.3.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <properties>
+ <maven.version>2.0.8</maven.version>
+ <wagon.version>1.0-beta-5</wagon.version>
+ <redback.version>1.2.1</redback.version>
+ <jetty.version>6.1.6</jetty.version>
+ <binder.version>0.9</binder.version>
+ <spring.version>2.5.6</spring.version>
+ </properties>
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <inherited>false</inherited>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/src.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>gnu</tarLongFileMode>
+ <finalName>apache-archiva-${project.version}-src</finalName>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- We want to sign the artifact, the POM, and all attached artifacts -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <configuration>
+ <passphrase>${gpg.passphrase}</passphrase>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- We want to deploy the artifact to a staging location for perusal -->
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
+ <updateReleaseInfo>true</updateReleaseInfo>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>2.0.4</version>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.4</version>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <repositories>
+ <repository>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>sonatype.public</id>
+ <name>Sonatype Public Repo</name>
+ <url>http://repository.sonatype.org/content/repositories/sonatype-apache-releases</url>
+ </repository>
+ <repository>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <id>codehaus.org.snapshots</id>
+ <name>Codehaus Snapshots Repository</name>
+ <url>http://snapshots.repository.codehaus.org</url>
+ </repository>
+ </repositories>
+</project>
diff --git a/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/maven/shared/maven-downloader/maven-metadata.xml b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/maven/shared/maven-downloader/maven-metadata.xml
new file mode 100644
index 000000000..5a7970a2e
--- /dev/null
+++ b/archiva-modules/plugins/maven2-repository/src/test/repositories/test/org/apache/maven/shared/maven-downloader/maven-metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ 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.
+ -->
+
+<metadata>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-downloader</artifactId>
+ <version>1.0</version>
+ <versioning>
+ <release>1.1</release>
+ <versions>
+ <version>1.0</version>
+ <version>1.1</version>
+ </versions>
+ <lastUpdated>20061212214311</lastUpdated>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/archiva/consumers/lucene/LuceneConsumersTest.xml b/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
index 4b3f8e25b..d8ea35f56 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/archiva/consumers/lucene/LuceneConsumersTest.xml
+++ b/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
@@ -20,9 +20,8 @@
<component-set>
<components>
<component>
- <role>org.apache.maven.archiva.database.ArchivaDAO</role>
- <role-hint>jdo</role-hint>
- <implementation>org.apache.archiva.consumers.lucene.stubs.ArchivaDAOStub</implementation>
+ <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+ <implementation>org.apache.archiva.configuration.TestConfiguration</implementation>
</component>
</components>
</component-set> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-repository-file/pom.xml b/archiva-modules/plugins/metadata-repository-file/pom.xml
new file mode 100644
index 000000000..ad8019b75
--- /dev/null
+++ b/archiva-modules/plugins/metadata-repository-file/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>plugins</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>metadata-repository-file</artifactId>
+ <name>File System Backed Metadata Repository</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java b/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
new file mode 100644
index 000000000..0e4eb70c6
--- /dev/null
+++ b/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
@@ -0,0 +1,195 @@
+package org.apache.archiva.metadata.repository.file;
+
+/*
+ * 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 java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.commons.io.IOUtils;
+
+/**
+ * @plexus.component role="org.apache.archiva.metadata.repository.MetadataRepository"
+ */
+public class FileMetadataRepository
+ implements MetadataRepository
+{
+ /**
+ * TODO: this isn't suitable for production use
+ *
+ * @plexus.configuration
+ */
+ private File directory = new File( System.getProperty( "user.home" ), ".archiva-metadata" );
+
+ public void updateProject( String repoId, ProjectMetadata project )
+ {
+ // TODO: this is a more braindead implementation than we would normally expect, for prototyping purposes
+ try
+ {
+ File projectDirectory =
+ new File( this.directory, repoId + "/" + project.getNamespace() + "/" + project.getId() );
+ Properties properties = new Properties();
+ properties.setProperty( "namespace", project.getNamespace() );
+ properties.setProperty( "id", project.getId() );
+ writeProperties( properties, projectDirectory );
+ }
+ catch ( IOException e )
+ {
+ // TODO!
+ e.printStackTrace();
+ }
+ }
+
+ public void updateProjectVersion( String repoId, String namespace, String projectId,
+ ProjectVersionMetadata versionMetadata )
+ {
+ File directory = new File( this.directory, repoId + "/" + namespace + "/" + projectId );
+
+ Properties properties = new Properties();
+ properties.setProperty( "id", versionMetadata.getId() );
+
+ try
+ {
+ writeProperties( properties, new File( directory, versionMetadata.getId() ) );
+ }
+ catch ( IOException e )
+ {
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
+
+ public void updateArtifact( String repoId, String namespace, String projectId, String projectVersion,
+ ArtifactMetadata artifact )
+ {
+ File directory = new File( this.directory, repoId + "/" + namespace + "/" + projectId + "/" + projectVersion );
+
+ Properties properties = readProperties( directory );
+
+ properties.setProperty( "updated:" + artifact.getId(), Long.toString( artifact.getUpdated().getTime() ) );
+ properties.setProperty( "size:" + artifact.getId(), Long.toString( artifact.getSize() ) );
+ properties.setProperty( "version:" + artifact.getId(), artifact.getVersion() );
+
+ try
+ {
+ writeProperties( properties, directory );
+ }
+ catch ( IOException e )
+ {
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
+
+ private Properties readProperties( File directory )
+ {
+ Properties properties = new Properties();
+ FileInputStream in = null;
+ try
+ {
+ in = new FileInputStream( new File( directory, "metadata.xml" ) );
+ properties.load( in );
+ }
+ catch ( FileNotFoundException e )
+ {
+ // skip - use blank properties
+ }
+ catch ( IOException e )
+ {
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ finally
+ {
+ IOUtils.closeQuietly( in );
+ }
+ return properties;
+ }
+
+ public ProjectMetadata getProject( String repoId, String groupId, String projectId )
+ {
+ File directory = new File( this.directory, repoId + "/" + projectId );
+
+ Properties properties = readProperties( directory );
+
+ ProjectMetadata project = new ProjectMetadata();
+ project.setNamespace( properties.getProperty( "namespace" ) );
+ project.setId( properties.getProperty( "id" ) );
+ return project;
+ }
+
+ public ProjectVersionMetadata getProjectVersion( String repoId, String groupId, String projectId,
+ String projectVersion )
+ {
+ File directory = new File( this.directory, repoId + "/" + projectId + "/" + projectVersion );
+
+ Properties properties = readProperties( directory );
+
+ ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata();
+ versionMetadata.setId( properties.getProperty( "id" ) );
+ return versionMetadata;
+ }
+
+ public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId,
+ String projectVersion )
+ {
+ File directory = new File( this.directory, repoId + "/" + projectId + "/" + projectVersion );
+
+ Properties properties = readProperties( directory );
+
+ List<String> versions = new ArrayList<String>();
+ for ( Map.Entry entry : properties.entrySet() )
+ {
+ String name = (String) entry.getKey();
+ if ( name.startsWith( "version:" ) )
+ {
+ versions.add( (String) entry.getValue() );
+ }
+ }
+ return versions;
+ }
+
+ private void writeProperties( Properties properties, File directory )
+ throws IOException
+ {
+ directory.mkdirs();
+ FileOutputStream os = new FileOutputStream( new File( directory, "metadata.xml" ) );
+ try
+ {
+ properties.storeToXML( os, null );
+ }
+ finally
+ {
+ IOUtils.closeQuietly( os );
+ }
+ }
+
+}
diff --git a/archiva-modules/plugins/pom.xml b/archiva-modules/plugins/pom.xml
new file mode 100644
index 000000000..d290c6ba8
--- /dev/null
+++ b/archiva-modules/plugins/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>archiva-modules</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>plugins</artifactId>
+ <name>Archiva Core Plugins</name>
+ <packaging>pom</packaging>
+ <modules>
+ <module>metadata-repository-file</module>
+ <module>maven2-repository</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/archiva-modules/pom.xml b/archiva-modules/pom.xml
index 76fb71efa..226b3a880 100644
--- a/archiva-modules/pom.xml
+++ b/archiva-modules/pom.xml
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
@@ -17,13 +16,11 @@
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>archiva</artifactId>
<groupId>org.apache.archiva</groupId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>archiva-modules</artifactId>
@@ -34,8 +31,10 @@
<module>archiva-base</module>
<module>archiva-database</module>
<module>archiva-reporting</module>
- <module>archiva-scheduled</module>
+ <module>archiva-scheduler</module>
<module>archiva-web</module>
+ <module>metadata</module>
+ <module>plugins</module>
</modules>
<reporting>
<plugins>
diff --git a/pom.xml b/pom.xml
index 443978c74..f3a2754a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
<name>Archiva</name>
<artifactId>archiva</artifactId>
<packaging>pom</packaging>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
<url>http://archiva.apache.org</url>
<scm>
<connection>scm:svn:http://svn.apache.org/repos/asf/archiva/trunk</connection>
@@ -290,161 +290,196 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-model</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-file</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
<artifactId>archiva-applet</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-artifact-converter</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-artifact-reports</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-checksum</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-common</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-configuration</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-consumer-api</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-converter</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-dependency-graph</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-core-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-database</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-database-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-indexer</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-lucene-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-model</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-policies</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-proxy</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-report-manager</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-layer</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-scanner</artifactId>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-scheduled</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <artifactId>archiva-scheduler-api</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-repository</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-database</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-scheduler-indexing</artifactId>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-security</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-signature-consumers</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-transaction</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-docs</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
<type>zip</type>
<classifier>docs</classifier>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-webapp</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xml-tools</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-webdav</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-rss</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc-api</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc-services</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-xmlrpc-security</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -589,6 +624,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-builder</artifactId>
+ <version>${maven3x.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-repository-metadata</artifactId>
<version>${maven.version}</version>
</dependency>
@@ -1098,6 +1138,7 @@
</dependencyManagement>
<properties>
<maven.version>2.0.8</maven.version>
+ <maven3x.version>3.0-alpha-4</maven3x.version>
<wagon.version>1.0-beta-5</wagon.version>
<redback.version>1.2.2</redback.version>
<jetty.version>6.1.19</jetty.version>